* armor.c (armor_filter): Comment about PGP's end of line tab problem.
authorDavid Shaw <dshaw@jabberwocky.com>
Sat, 11 Jan 2003 03:57:00 +0000 (03:57 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Sat, 11 Jan 2003 03:57:00 +0000 (03:57 +0000)
* trustdb.h, trustdb.c (trust_letter): Make static. (get_ownertrust_info,
get_validity_info): Don't mask the trust level twice.

* trustdb.h, gpgv.c, trustdb.c (get_validity, get_validity_info),
keylist.c (list_keyblock_colon), keyedit.c (show_key_with_all_names_colon,
menu_revuid): Pass a user ID in rather than a namehash, so we only have to
do the hashing in one place.

* packet.h, pkclist.c (build_pk_list), free-packet.c
(release_public_key_parts): Remove unused namehash element for public
keys.

g10/ChangeLog
g10/armor.c
g10/free-packet.c
g10/gpgv.c
g10/keyedit.c
g10/keylist.c
g10/packet.h
g10/pkclist.c
g10/trustdb.c
g10/trustdb.h

index f1c5638..31310f9 100644 (file)
@@ -1,3 +1,22 @@
+2003-01-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c (armor_filter): Comment about PGP's end of line tab
+       problem.
+
+       * trustdb.h, trustdb.c (trust_letter): Make
+       static. (get_ownertrust_info, get_validity_info): Don't mask the
+       trust level twice.
+
+       * trustdb.h, gpgv.c, trustdb.c (get_validity, get_validity_info),
+       keylist.c (list_keyblock_colon), keyedit.c
+       (show_key_with_all_names_colon, menu_revuid): Pass a user ID in
+       rather than a namehash, so we only have to do the hashing in one
+       place.
+
+       * packet.h, pkclist.c (build_pk_list), free-packet.c
+       (release_public_key_parts): Remove unused namehash element for
+       public keys.
+
 2003-01-07  David Shaw  <dshaw@jabberwocky.com>
 
        * keygen.c (keygen_set_std_prefs): Warn when setting an IDEA
index 9c7858f..70d4d5a 100644 (file)
@@ -1,5 +1,6 @@
 /* armor.c - Armor flter
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -871,6 +872,9 @@ armor_filter( void *opaque, int control,
                hashes &= 1|2|4|8;
                if( !hashes ) {
                    hashes |= 4;  /* default to MD 5 */
+                   /* This is non-ideal since PGP 5-8 have the same
+                      end-of-line bugs as PGP 2. However, we only
+                      enable pgp2mode if there is no Hash: header. */
                    if( opt.pgp2_workarounds )
                        afx->pgp2mode = 1;
                }
index e760999..7cd0549 100644 (file)
@@ -1,5 +1,6 @@
 /* free-packet.c - cleanup stuff for packets
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -68,7 +69,6 @@ free_seckey_enc( PKT_signature *sig )
 }
 
 
-
 void
 release_public_key_parts( PKT_public_key *pk )
 {
@@ -84,10 +84,6 @@ release_public_key_parts( PKT_public_key *pk )
         m_free (pk->prefs);
         pk->prefs = NULL;
     }
-    if( pk->namehash ) {
-       m_free(pk->namehash);
-       pk->namehash = NULL;
-    }
     if (pk->user_id) {
         free_user_id (pk->user_id);
         pk->user_id = NULL;
index 389cb40..8e22d50 100644 (file)
@@ -239,7 +239,7 @@ is_disabled(void *dummy,u32 *keyid)
 }
 
 int
-get_validity_info (PKT_public_key *pk, const byte *namehash )
+get_validity_info (PKT_public_key *pk, PKT_user_id *uid)
 {
     return '?';
 }
index 02031fe..12d6f7c 100644 (file)
@@ -1,5 +1,6 @@
 /* keyedit.c - keyedit stuff
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -1816,18 +1817,10 @@ show_key_with_all_names_colon (KBNODE keyblock)
              printf("::::::::");
            else
              {
-               byte namehash[20];
                int uid_validity;
 
                if( primary && !ulti_hack )
-                 {
-                   if( uid->attrib_data )
-                     rmd160_hash_buffer(namehash,
-                                        uid->attrib_data, uid->attrib_len);
-                   else
-                     rmd160_hash_buffer( namehash, uid->name, uid->len  );
-                   uid_validity = get_validity_info( primary, namehash );
-                 }
+                 uid_validity = get_validity_info( primary, uid );
                else
                  uid_validity = 'u';
                printf("%c::::::::",uid_validity);
@@ -3407,8 +3400,6 @@ menu_revuid( KBNODE pub_keyblock, KBNODE sec_keyblock )
              }
            else
              {
-               byte namehash[20];
-
                pkt = m_alloc_clear( sizeof *pkt );
                pkt->pkttype = PKT_SIGNATURE;
                pkt->pkt.signature = sig;
@@ -3418,13 +3409,7 @@ menu_revuid( KBNODE pub_keyblock, KBNODE sec_keyblock )
                  {
                    /* If the trustdb has an entry for this key+uid then the
                       trustdb needs an update. */
-                   if( uid->attrib_data )
-                     rmd160_hash_buffer(namehash,
-                                        uid->attrib_data, uid->attrib_len);
-                   else
-                     rmd160_hash_buffer( namehash, uid->name, uid->len  );
-
-                   if((get_validity(pk,namehash)&TRUST_MASK)>=TRUST_UNDEFINED)
+                   if((get_validity(pk,uid)&TRUST_MASK)>=TRUST_UNDEFINED)
                      update_trust=1;
                  }
 
index 9dd55a1..0c8277a 100644 (file)
@@ -1,5 +1,6 @@
 /* keylist.c
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -766,20 +767,11 @@ list_keyblock_colon( KBNODE keyblock, int secret, int fpr )
                    printf("%s:::::::::",str);
                }
                 else {
-                   byte namehash[20];
                    int uid_validity;
 
-                   if( pk && !ulti_hack ) {
-                       if( node->pkt->pkt.user_id->attrib_data )
-                           rmd160_hash_buffer( namehash,
-                                          node->pkt->pkt.user_id->attrib_data,
-                                          node->pkt->pkt.user_id->attrib_len);
-                       else
-                           rmd160_hash_buffer( namehash,
-                                           node->pkt->pkt.user_id->name,
-                                           node->pkt->pkt.user_id->len  );
-                       uid_validity = get_validity_info( pk, namehash );
-                   }
+                   if( pk && !ulti_hack )
+                     uid_validity=get_validity_info (pk,
+                                                     node->pkt->pkt.user_id);
                    else
                        uid_validity = 'u';
                    printf("%s:%c::::::::",str,uid_validity);
index 05e7c26..d7a795a 100644 (file)
@@ -1,5 +1,6 @@
 /* packet.h - packet definitions
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -210,7 +211,6 @@ typedef struct {
     byte    is_primary;
     prefitem_t *prefs;      /* list of preferences (may be NULL) */
     int     mdc_feature;    /* mdc feature set */
-    byte    *namehash;     /* if != NULL: found by this name */
     PKT_user_id *user_id;   /* if != NULL: found by that uid */
     struct revocation_key *revkey;
     int     numrevkeys;
index f5c5960..e2c4209 100644 (file)
@@ -1,5 +1,6 @@
 /* pkclist.c
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -1027,7 +1028,7 @@ build_pk_list( STRLIST rcpts, PK_LIST *ret_pk_list, unsigned use )
            else if( !(rc=check_pubkey_algo2(pk->pubkey_algo, use )) ) {
                int trustlevel;
 
-               trustlevel = get_validity (pk, pk->namehash);
+               trustlevel = get_validity (pk, NULL);
                if( (trustlevel & TRUST_FLAG_DISABLED) ) {
                    free_public_key(pk); pk = NULL;
                    log_info(_("%s: skipped: public key is disabled\n"),
index ed4a937..16f8f7c 100644 (file)
@@ -1,5 +1,6 @@
 /* trustdb.c
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -439,7 +440,7 @@ init_trustdb()
  * This function returns a letter for a trustvalue  Trust flags
  * are ignore.
  */
-int
+static int
 trust_letter (unsigned int value)
 {
   switch( (value & TRUST_MASK) ) 
@@ -649,7 +650,7 @@ get_ownertrust_info (PKT_public_key *pk)
        otrust=otrust_min;
       }
 
-    c = trust_letter( (otrust & TRUST_MASK) );
+    c = trust_letter( otrust );
     if( !c )
        c = '?';
     return c;
@@ -803,7 +804,7 @@ update_validity (PKT_public_key *pk, PKT_user_id *uid,
   ulong recno;
   byte namehash[20];
 
-  if( uid->attrib_data )
+  if(uid->attrib_data)
     rmd160_hash_buffer (namehash,uid->attrib_data,uid->attrib_len);
   else
     rmd160_hash_buffer (namehash, uid->name, uid->len );
@@ -943,7 +944,7 @@ is_disabled(void *dummy,u32 *keyid)
  * otherwise, a reasonable value for the entire key is returned. 
  */
 unsigned int
-get_validity (PKT_public_key *pk, const byte *namehash)
+get_validity (PKT_public_key *pk, PKT_user_id *uid)
 {
   static int did_nextcheck;
   TRUSTREC trec, vrec;
@@ -952,7 +953,16 @@ get_validity (PKT_public_key *pk, const byte *namehash)
   unsigned int validity;
   u32 kid[2];
   PKT_public_key *main_pk;
+  byte namehash[20];
 
+  if(uid)
+    {
+      if(uid->attrib_data)
+       rmd160_hash_buffer (namehash,uid->attrib_data,uid->attrib_len);
+      else
+       rmd160_hash_buffer (namehash, uid->name, uid->len );
+    }
+  
   init_trustdb ();
   if (!did_nextcheck)
     {
@@ -1011,7 +1021,7 @@ get_validity (PKT_public_key *pk, const byte *namehash)
       read_record (recno, &vrec, RECTYPE_VALID);
       if ( validity < (vrec.r.valid.validity & TRUST_MASK) )
         validity = (vrec.r.valid.validity & TRUST_MASK);
-      if ( namehash && !memcmp (vrec.r.valid.namehash, namehash, 20) )
+      if ( uid && !memcmp (vrec.r.valid.namehash, namehash, 20) )
         break;
       recno = vrec.r.valid.next;
     }
@@ -1042,15 +1052,15 @@ get_validity (PKT_public_key *pk, const byte *namehash)
 }
 
 int
-get_validity_info (PKT_public_key *pk, const byte *namehash)
+get_validity_info (PKT_public_key *pk, PKT_user_id *uid)
 {
     int trustlevel;
     int c;
 
-    trustlevel = get_validity (pk, namehash);
+    trustlevel = get_validity (pk, uid);
     if( trustlevel & TRUST_FLAG_REVOKED )
        return 'r';
-    c = trust_letter ( (trustlevel & TRUST_MASK) );
+    c = trust_letter ( trustlevel );
     if( !c )
        c = '?';
     return c;
@@ -1066,7 +1076,7 @@ get_validity_counts (PKT_public_key *pk, PKT_user_id *uid)
   if(pk==NULL || uid==NULL)
     BUG();
 
-  if( uid->attrib_data )
+  if(uid->attrib_data)
     rmd160_hash_buffer (namehash,uid->attrib_data,uid->attrib_len);
   else
     rmd160_hash_buffer (namehash, uid->name, uid->len );
index 3ca674e..caedc7f 100644 (file)
@@ -1,5 +1,6 @@
 /* trustdb.h - Trust database
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
+ *                                             Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -45,15 +46,14 @@ int setup_trustdb( int level, const char *dbname );
 void init_trustdb( void );
 void sync_trustdb( void );
 
-int trust_letter( unsigned value );
 const char *trust_string (unsigned int value);
 
 void revalidation_mark (void);
 int trustdb_pending_check(void);
 
 int is_disabled(void *dummy,u32 *keyid);
-unsigned int get_validity (PKT_public_key *pk, const byte *namehash);
-int get_validity_info (PKT_public_key *pk, const byte *namehash);
+unsigned int get_validity (PKT_public_key *pk, PKT_user_id *uid);
+int get_validity_info (PKT_public_key *pk, PKT_user_id *uid);
 
 void list_trust_path( const char *username );