summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/gpg.c10
-rw-r--r--g10/main.h2
-rw-r--r--g10/revoke.c13
3 files changed, 14 insertions, 11 deletions
diff --git a/g10/gpg.c b/g10/gpg.c
index cb610a11b..794d5ea56 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -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"));