diff options
author | David Shaw <[email protected]> | 2004-02-11 04:32:52 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2004-02-11 04:32:52 +0000 |
commit | 7198879ca8db7e5281a1503f1ed1636dc2c5c24f (patch) | |
tree | 29665490c870eb0e3b285f3704ef065d29fe982c /g10/getkey.c | |
parent | * keygen.c (keygen_set_std_prefs): Build the default preferences list at (diff) | |
download | gnupg-7198879ca8db7e5281a1503f1ed1636dc2c5c24f.tar.gz gnupg-7198879ca8db7e5281a1503f1ed1636dc2c5c24f.zip |
* keyedit.c (keyedit_menu): Prompt for subkey removal for both secret and
public subkeys.
* keylist.c (list_keyblock_print), keyedit.c (show_key_with_all_names):
Show the revocation date of a key/subkey, and general formatting work.
* packet.h, getkey.c (merge_selfsigs_main, merge_selfsigs_subkey,
merge_selfsigs): Keep track of the revocation date of a key.
* keydb.h, keyid.c (revokestr_from_pk): New function to print the
revocation date of a key.
Diffstat (limited to 'g10/getkey.c')
-rw-r--r-- | g10/getkey.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/g10/getkey.c b/g10/getkey.c index 14a459df6..e479ed6ea 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -1360,7 +1360,7 @@ fixup_uidnode ( KBNODE uidnode, KBNODE signode, u32 keycreated ) } static void -merge_selfsigs_main( KBNODE keyblock, int *r_revoked ) +merge_selfsigs_main( KBNODE keyblock, int *r_revoked, u32 *r_revokedate ) { PKT_public_key *pk = NULL; KBNODE k; @@ -1375,6 +1375,7 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked ) byte sigversion = 0; *r_revoked = 0; + *r_revokedate = 0; if ( keyblock->pkt->pkttype != PKT_PUBLIC_KEY ) BUG (); pk = keyblock->pkt->pkt.public_key; @@ -1420,6 +1421,7 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked ) * that key. */ *r_revoked = 1; + *r_revokedate = sig->timestamp; } else if ( IS_KEY_SIG (sig) ) { /* Add any revocation keys onto the pk. This is @@ -1537,6 +1539,7 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked ) if(rc==0) { *r_revoked=2; + *r_revokedate=sig->timestamp; /* don't continue checking since we can't be any more revoked than this */ break; @@ -1875,6 +1878,7 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode ) problem is in the distribution. Plus, PGP (7) does this the same way. */ subpk->is_revoked = 1; + subpk->revokedate = sig->timestamp; /* although we could stop now, we continue to * figure out other information like the old expiration * time */ @@ -1946,6 +1950,7 @@ merge_selfsigs( KBNODE keyblock ) { KBNODE k; int revoked; + u32 revokedate; PKT_public_key *main_pk; prefitem_t *prefs; int mdc_feature; @@ -1962,7 +1967,7 @@ merge_selfsigs( KBNODE keyblock ) BUG (); } - merge_selfsigs_main ( keyblock, &revoked ); + merge_selfsigs_main ( keyblock, &revoked, &revokedate ); /* now merge in the data from each of the subkeys */ for(k=keyblock; k; k = k->next ) { @@ -1983,7 +1988,10 @@ merge_selfsigs( KBNODE keyblock ) if(!main_pk->is_valid) pk->is_valid = 0; if(revoked && !pk->is_revoked) - pk->is_revoked = revoked; + { + pk->is_revoked = revoked; + pk->revokedate = revokedate; + } if(main_pk->has_expired) pk->has_expired = main_pk->has_expired; } |