* import.c (import_one): Only do the work to create the status display for

interactive import if status is enabled.

* keyring.c (keyring_search): skipfnc didn't work properly with non-keyid
searches.  Noted by Stefan Bellon.

* getkey.c (merge_selfsigs_main): Remove some unused code and make sure
that the pk selfsigversion member accounts for 1F direct sigs.
This commit is contained in:
David Shaw 2003-01-03 21:41:53 +00:00
parent 842e690f54
commit e247a0b3e0
4 changed files with 27 additions and 10 deletions

View File

@ -1,3 +1,15 @@
2003-01-03 David Shaw <dshaw@jabberwocky.com>
* import.c (import_one): Only do the work to create the status
display for interactive import if status is enabled.
* keyring.c (keyring_search): skipfnc didn't work properly with
non-keyid searches. Noted by Stefan Bellon.
* getkey.c (merge_selfsigs_main): Remove some unused code and make
sure that the pk selfsigversion member accounts for 1F direct
sigs.
2003-01-02 Werner Koch <wk@gnupg.org>
* keydb.c (keydb_add_resource): Don't assume that try_make_homedir

View File

@ -1314,7 +1314,7 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
PKT_public_key *pk = NULL;
KBNODE k;
u32 kid[2];
u32 sigdate = 0, uiddate=0, uiddate2;
u32 sigdate, uiddate, uiddate2;
KBNODE signode, uidnode, uidnode2;
u32 curtime = make_timestamp ();
unsigned int key_usage = 0;
@ -1397,7 +1397,8 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
else {
sigdate = sig->timestamp;
signode = k;
sigversion = sig->version;
if( sig->version > sigversion )
sigversion = sig->version;
}
}
@ -1495,7 +1496,6 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
/* second pass: look at the self-signature of all user IDs */
signode = uidnode = NULL;
sigdate = 0; /* helper to find the latest signature in one user ID */
uiddate = 0; /* and over of all user IDs */
for(k=keyblock; k && k->pkt->pkttype != PKT_PUBLIC_SUBKEY; k = k->next ) {
if ( k->pkt->pkttype == PKT_USER_ID ) {
if ( uidnode && signode )
@ -1505,8 +1505,6 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
}
uidnode = k;
signode = NULL;
if ( sigdate > uiddate )
uiddate = sigdate;
sigdate = 0;
}
else if ( k->pkt->pkttype == PKT_SIGNATURE && uidnode ) {
@ -1602,9 +1600,15 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
}
}
/* Record the highest selfsigversion so we know if this is a v3
key through and through, or a v3 key with a v4 selfsig, which
means we can trust the preferences (if any). */
/* Record the highest selfsig version so we know if this is a v3
key through and through, or a v3 key with a v4 selfsig
somewhere. This is useful in a few places to know if the key
must be treated as PGP2-style or OpenPGP-style. Note that a
selfsig revocation with a higher version number will also raise
this value. This is okay since such a revocation must be
issued by the user (i.e. it cannot be issued by someone else to
modify the key behavior.) */
pk->selfsigversion=sigversion;
/* Now that we had a look at all user IDs we can now get some information

View File

@ -630,7 +630,8 @@ import_one( const char *fname, KBNODE keyblock,
}
if (opt.interactive) {
print_import_check (pk, uidnode->pkt->pkt.user_id);
if(is_status_enabled())
print_import_check (pk, uidnode->pkt->pkt.user_id);
merge_keys_and_selfsig (keyblock);
tty_printf ("\n");
show_basic_key_info (keyblock);

View File

@ -866,6 +866,7 @@ keyring_search (KEYRING_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc)
PKT_user_id *uid = NULL;
PKT_public_key *pk = NULL;
PKT_secret_key *sk = NULL;
u32 aki[2];
/* figure out what information we need */
need_uid = need_words = need_keyid = need_fpr = any_skip = 0;
@ -968,7 +969,6 @@ keyring_search (KEYRING_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc)
{
byte afp[MAX_FINGERPRINT_LEN];
size_t an;
u32 aki[2];
if (pkt.pkttype == PKT_PUBLIC_KEY || pkt.pkttype == PKT_SECRET_KEY)
{