aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keylist.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/keylist.c')
-rw-r--r--g10/keylist.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/g10/keylist.c b/g10/keylist.c
index 8fc486c5d..4655e9adc 100644
--- a/g10/keylist.c
+++ b/g10/keylist.c
@@ -417,7 +417,11 @@ list_keyblock_print ( KBNODE keyblock, int secret )
char *sigstr;
if( !any ) { /* no user id, (maybe a revocation follows)*/
- if( sig->sig_class == 0x20 )
+ /* Check if the pk is really revoked - there could be a
+ 0x20 sig packet there even if we are not revoked
+ (say, if a revocation key issued the packet, but the
+ revocation key isn't present to verify it.) */
+ if( sig->sig_class == 0x20 && pk->is_revoked )
puts("[revoked]");
else if( sig->sig_class == 0x18 )
puts("[key binding]");
@@ -437,6 +441,8 @@ list_keyblock_print ( KBNODE keyblock, int secret )
sigstr = "sig";
else if( sig->sig_class == 0x18 )
sigstr = "sig";
+ else if( sig->sig_class == 0x1F )
+ sigstr = "sig";
else {
printf("sig "
"[unexpected signature class 0x%02x]\n",sig->sig_class );