aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2003-01-11 03:57:00 +0000
committerDavid Shaw <[email protected]>2003-01-11 03:57:00 +0000
commit8b3b70499a26300930b1414cb0445d24ba9530eb (patch)
tree3cebfbec28186f5c96c67ec43e640d76b3c87b3d
parentUpdated from latest NewPG project (diff)
downloadgnupg-8b3b70499a26300930b1414cb0445d24ba9530eb.tar.gz
gnupg-8b3b70499a26300930b1414cb0445d24ba9530eb.zip
* 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.
-rw-r--r--g10/ChangeLog19
-rw-r--r--g10/armor.c6
-rw-r--r--g10/free-packet.c8
-rw-r--r--g10/gpgv.c2
-rw-r--r--g10/keyedit.c23
-rw-r--r--g10/keylist.c18
-rw-r--r--g10/packet.h4
-rw-r--r--g10/pkclist.c5
-rw-r--r--g10/trustdb.c30
-rw-r--r--g10/trustdb.h8
10 files changed, 65 insertions, 58 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index f1c56382f..31310f90f 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,22 @@
+2003-01-10 David Shaw <[email protected]>
+
+ * 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 <[email protected]>
* keygen.c (keygen_set_std_prefs): Warn when setting an IDEA
diff --git a/g10/armor.c b/g10/armor.c
index 9c7858fe6..70d4d5aac 100644
--- a/g10/armor.c
+++ b/g10/armor.c
@@ -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;
}
diff --git a/g10/free-packet.c b/g10/free-packet.c
index e760999be..7cd05497b 100644
--- a/g10/free-packet.c
+++ b/g10/free-packet.c
@@ -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;
diff --git a/g10/gpgv.c b/g10/gpgv.c
index 389cb40f8..8e22d50e3 100644
--- a/g10/gpgv.c
+++ b/g10/gpgv.c
@@ -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 '?';
}
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 02031fe1b..12d6f7c2b 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -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;
}
diff --git a/g10/keylist.c b/g10/keylist.c
index 9dd55a1a4..0c8277a02 100644
--- a/g10/keylist.c
+++ b/g10/keylist.c
@@ -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);
diff --git a/g10/packet.h b/g10/packet.h
index 05e7c261a..d7a795a77 100644
--- a/g10/packet.h
+++ b/g10/packet.h
@@ -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;
diff --git a/g10/pkclist.c b/g10/pkclist.c
index f5c596027..e2c4209c0 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -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"),
diff --git a/g10/trustdb.c b/g10/trustdb.c
index ed4a9379a..16f8f7cb0 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -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 );
diff --git a/g10/trustdb.h b/g10/trustdb.h
index 3ca674ece..caedc7fa4 100644
--- a/g10/trustdb.h
+++ b/g10/trustdb.h
@@ -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 );