aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pkclist.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--g10/pkclist.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/g10/pkclist.c b/g10/pkclist.c
index 73e8f3889..f873be404 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -287,6 +287,16 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
_("Use this key anyway? ")) )
return 0;
}
+ else if( (trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
+ log_info(_("key %08lX: subkey has been revoked!\n"),
+ (ulong)keyid_from_pk( pk, NULL) );
+ if( opt.batch )
+ return 0;
+
+ if( !cpr_get_answer_is_yes("revoked_key.override",
+ _("Use this key anyway? ")) )
+ return 0;
+ }
switch( (trustlevel & TRUST_MASK) ) {
@@ -368,6 +378,8 @@ do_we_trust_pre( PKT_public_key *pk, int trustlevel )
if( (trustlevel & TRUST_FLAG_REVOKED) && !rc )
return 0;
+ if( (trustlevel & TRUST_FLAG_SUB_REVOKED) && !rc )
+ return 0;
else if( !opt.batch && !rc ) {
char *p;
u32 keyid[2];
@@ -435,6 +447,10 @@ check_signatures_trust( PKT_signature *sig )
log_info(_("WARNING: This key has been revoked by its owner!\n"));
log_info(_(" This could mean that the signature is forgery.\n"));
}
+ else if( (trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
+ write_status( STATUS_KEYREVOKED );
+ log_info(_("WARNING: This subkey has been revoked by its owner!\n"));
+ }
switch( (trustlevel & TRUST_MASK) ) {