diff options
author | David Shaw <[email protected]> | 2005-07-09 02:34:04 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2005-07-09 02:34:04 +0000 |
commit | 8238e7698b4af78ce6363345f25ccef201643f74 (patch) | |
tree | 03b1f714e7ae1d2867068dcaddbacc2934428a04 /g10/import.c | |
parent | * gpgkeys_mailto.in, gpgkeys_test.in: Use @VERSION@ so version string (diff) | |
download | gnupg-8238e7698b4af78ce6363345f25ccef201643f74.tar.gz gnupg-8238e7698b4af78ce6363345f25ccef201643f74.zip |
* trustdb.c (clean_uids_from_key): Don't keep a valid selfsig around
when compacting a uid. There is no reason to make an attacker's job
easier - this way they only have a revocation which is useless in
bringing the uid back.
* keydb.h, kbnode.c (undelete_kbnode): Removed. No longer needed.
* import.c (chk_self_sigs): Allow a uid revocation to be enough to
allow importing a particular uid (no self sig needed). This allows
importing compacted uids.
Diffstat (limited to '')
-rw-r--r-- | g10/import.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/g10/import.c b/g10/import.c index 1818a28c6..8c96e5a6a 100644 --- a/g10/import.c +++ b/g10/import.c @@ -1346,12 +1346,13 @@ chk_self_sigs( const char *fname, KBNODE keyblock, sig = n->pkt->pkt.signature; if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) { - /* This just caches the sigs for later use. That way we - import a fully-cached key which speeds things up. */ - if(!opt.no_sig_cache) - check_key_signature(keyblock,n,NULL); + /* This just caches the sigs for later use. That way we + import a fully-cached key which speeds things up. */ + if(!opt.no_sig_cache) + check_key_signature(keyblock,n,NULL); - if( (sig->sig_class&~3) == 0x10 ) { + if( IS_UID_SIG(sig) || IS_UID_REV(sig) ) + { KBNODE unode = find_prev_kbnode( keyblock, n, PKT_USER_ID ); if( !unode ) { @@ -1381,7 +1382,7 @@ chk_self_sigs( const char *fname, KBNODE keyblock, else unode->flag |= 1; /* mark that signature checked */ } - } + } else if( sig->sig_class == 0x18 ) { /* Note that this works based solely on the timestamps like the rest of gpg. If the standard gets |