diff options
-rw-r--r-- | g10/gpg.c | 10 | ||||
-rw-r--r-- | g10/main.h | 2 | ||||
-rw-r--r-- | g10/revoke.c | 13 |
3 files changed, 14 insertions, 11 deletions
@@ -4179,11 +4179,11 @@ main (int argc, char **argv) break; case aDesigRevoke: - if( argc != 1 ) - wrong_args("--desig-revoke user-id"); - username = make_username(*argv); - gen_desig_revoke( username, locusr ); - xfree( username ); + if (argc != 1) + wrong_args ("--desig-revoke user-id"); + username = make_username (*argv); + gen_desig_revoke (ctrl, username, locusr); + xfree (username); break; case aDeArmor: diff --git a/g10/main.h b/g10/main.h index 518ec94f3..a50c85c03 100644 --- a/g10/main.h +++ b/g10/main.h @@ -356,7 +356,7 @@ int enarmor_file( const char *fname ); struct revocation_reason_info; int gen_standard_revoke (PKT_public_key *psk, const char *cache_nonce); int gen_revoke( const char *uname ); -int gen_desig_revoke( const char *uname, strlist_t locusr); +int gen_desig_revoke (ctrl_t ctrl, const char *uname, strlist_t locusr); int revocation_reason_build_cb( PKT_signature *sig, void *opaque ); struct revocation_reason_info * ask_revocation_reason( int key_rev, int cert_rev, int hint ); diff --git a/g10/revoke.c b/g10/revoke.c index eb3a989c0..b341ccec1 100644 --- a/g10/revoke.c +++ b/g10/revoke.c @@ -195,7 +195,7 @@ export_minimal_pk(IOBUF out,KBNODE keyblock, * Generate a revocation certificate for UNAME via a designated revoker */ int -gen_desig_revoke( const char *uname, strlist_t locusr ) +gen_desig_revoke (ctrl_t ctrl, const char *uname, strlist_t locusr) { int rc = 0; armor_filter_context_t *afx; @@ -312,6 +312,13 @@ gen_desig_revoke( const char *uname, strlist_t locusr ) tty_printf(_("(This is a sensitive revocation key)\n")); tty_printf("\n"); + rc = agent_probe_secret_key (ctrl, pk2); + if (rc) + { + tty_printf (_("Secret key is not available.\n")); + continue; + } + if( !cpr_get_answer_is_yes("gen_desig_revoke.okay", _("Create a designated revocation certificate for this key? (y/N) "))) continue; @@ -321,10 +328,6 @@ gen_desig_revoke( const char *uname, strlist_t locusr ) if( !reason ) continue; - rc = -1;/*FIXME: check_secret_key (pk2, 0 );*/ - if (rc) - continue; - if( !opt.armor ) tty_printf(_("ASCII armored output forced.\n")); |