diff options
-rw-r--r-- | g10/ChangeLog | 7 | ||||
-rw-r--r-- | g10/import.c | 15 |
2 files changed, 16 insertions, 6 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 02cdb6962..066c0a657 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,10 @@ +2004-02-11 David Shaw <[email protected]> + + * import.c (import_one): Do the revocation check even in the case + when a key, a revocation key set in a direct key signature, and a + revocation from that revocation key, all arrive piecemeal. + Needless to say, this is pretty obscure. + 2004-02-10 David Shaw <[email protected]> * g10.c (rm_group): Properly ungroup from a list of groups. diff --git a/g10/import.c b/g10/import.c index 6be0dd68e..ecfb0afcb 100644 --- a/g10/import.c +++ b/g10/import.c @@ -1,6 +1,6 @@ /* import.c * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 - * Free Software Foundation, Inc. + * 2004 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -496,7 +496,7 @@ print_import_ok (PKT_public_key *pk, PKT_secret_key *sk, unsigned int reason) } -void +static void print_import_check (PKT_public_key * pk, PKT_user_id * id) { char * buf; @@ -777,11 +777,14 @@ import_one( const char *fname, KBNODE keyblock, int fast, } leave: + if(mod_key) + revocation_present(keyblock_orig); + else if(new_key) + revocation_present(keyblock); + release_kbnode( keyblock_orig ); free_public_key( pk_orig ); - revocation_present(keyblock); - return rc; } @@ -1373,8 +1376,8 @@ collapse_uids( KBNODE *keyblock ) } /* Check for a 0x20 revocation from a revocation key that is not - present. This gets called without the benefit of merge_xxxx so you - can't rely on pk->revkey and friends. */ + present. This may be called without the benefit of merge_xxxx so + you can't rely on pk->revkey and friends. */ static void revocation_present(KBNODE keyblock) { |