aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2005-06-08 13:12:57 +0000
committerDavid Shaw <[email protected]>2005-06-08 13:12:57 +0000
commit1b07e3723e49d38c110b2cc503dd364a36f16bdc (patch)
tree4a25c99276752ecccc779336cf87b2638190db1d /g10/getkey.c
parent* options.h, g10.c (main), export.c (parse_export_options, (diff)
downloadgnupg-1b07e3723e49d38c110b2cc503dd364a36f16bdc.tar.gz
gnupg-1b07e3723e49d38c110b2cc503dd364a36f16bdc.zip
* getkey.c (fixup_uidnode, merge_selfsigs_main): Handle both expired
and revoked uids in fixup_uidnode(). No need to special case in merge_selfsigs_main(). This also means that an expired uid will have its selfsig tagged with chosen_selfsig.
Diffstat (limited to 'g10/getkey.c')
-rw-r--r--g10/getkey.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index 2647cf373..84eb9aecf 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -1347,11 +1347,18 @@ fixup_uidnode ( KBNODE uidnode, KBNODE signode, u32 keycreated )
return; /* has been revoked */
}
+ uid->expiredate = sig->expiredate;
+
+ if(sig->flags.expired)
+ {
+ uid->is_expired = 1;
+ return; /* has expired */
+ }
+
uid->created = sig->timestamp; /* this one is okay */
uid->selfsigversion = sig->version;
/* If we got this far, it's not expired :) */
uid->is_expired = 0;
- uid->expiredate = sig->expiredate;
/* store the key flags in the helper variable for later processing */
uid->help_key_usage=parse_key_usage(sig);
@@ -1652,19 +1659,9 @@ merge_selfsigs_main(KBNODE keyblock, int *r_revoked, struct revoke_info *rinfo)
* the same email address may become valid again (hired,
* fired, hired again).
*/
- if(sig->flags.expired)
- {
- uidnode->pkt->pkt.user_id->is_expired=1;
- signode = NULL;
- }
- else
- {
- uidnode->pkt->pkt.user_id->is_expired=0;
- signode = k;
- }
sigdate = sig->timestamp;
- uidnode->pkt->pkt.user_id->expiredate=sig->expiredate;
+ signode = k;
if( sig->version > sigversion )
sigversion = sig->version;
}