1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-22 14:57:02 +01:00

* getkey.c (merge_selfsigs_main): Remove some unused code and make sure

that the pk selfsigversion member accounts for 1F direct sigs.

* keyring.c (keyring_search): skipfnc didn't work properly with non-keyid
searches.  Noted by Stefan Bellon.
This commit is contained in:
David Shaw 2003-01-03 00:40:20 +00:00
parent e538b99549
commit 2d5091e4e3
3 changed files with 22 additions and 9 deletions

View File

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

View File

@ -1319,7 +1319,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;
@ -1402,7 +1402,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;
}
}
@ -1500,7 +1501,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 )
@ -1510,8 +1510,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 ) {
@ -1601,9 +1599,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

@ -861,6 +861,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;
@ -963,7 +964,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)
{