diff options
Diffstat (limited to 'g10/keylist.c')
-rw-r--r-- | g10/keylist.c | 8 |
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 ); |