* 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.
This commit is contained in:
David Shaw 2003-01-11 03:57:00 +00:00
parent 29ef9bd0fb
commit 8b3b70499a
10 changed files with 65 additions and 58 deletions

View 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

View 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;
}

View 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;

View 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 '?';
}

View 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;
}

View 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);

View 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;

View 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"),

View 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 );

View 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 );