diff options
author | Werner Koch <[email protected]> | 2016-05-10 09:01:42 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-05-10 09:01:42 +0000 |
commit | ac9ff644b12c4dfa55d466af8ae6af54d1646893 (patch) | |
tree | 53c7e2f423de931b5f87bedc9850de115fa5bc8e /agent/command.c | |
parent | gpg: Fix buglet in the check_all_keysigs function. (diff) | |
download | gnupg-ac9ff644b12c4dfa55d466af8ae6af54d1646893.tar.gz gnupg-ac9ff644b12c4dfa55d466af8ae6af54d1646893.zip |
gpg: Allow unattended deletion of secret keys.
* agent/command.c (cmd_delete_key): Make the --force option depend on
--disallow-loopback-passphrase.
* g10/call-agent.c (agent_delete_key): Add arg FORCE.
* g10/delkey.c (do_delete_key): Pass opt.answer_yes to
agent_delete_key.
--
Unless the agent has been configured with
--disallow-loopback-passpharse an unattended deletion of a secret key
is now possible with gpg by using --batch _and_ --yes.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'agent/command.c')
-rw-r--r-- | agent/command.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/agent/command.c b/agent/command.c index c94fdd37a..dfbb83194 100644 --- a/agent/command.c +++ b/agent/command.c @@ -2333,8 +2333,9 @@ cmd_export_key (assuan_context_t ctx, char *line) static const char hlp_delete_key[] = "DELETE_KEY [--force] <hexstring_with_keygrip>\n" "\n" - "Delete a secret key from the key store.\n" - "Unless --force is used the agent asks the user for confirmation.\n"; + "Delete a secret key from the key store. If --force is used\n" + "and a loopback pinentry is allowed, the agent will not ask\n" + "the user for confirmation."; static gpg_error_t cmd_delete_key (assuan_context_t ctx, char *line) { @@ -2349,6 +2350,11 @@ cmd_delete_key (assuan_context_t ctx, char *line) force = has_option (line, "--force"); line = skip_options (line); + /* If the use of a loopback pinentry has been disabled, we assume + * that a silent deletion of keys shall also not be allowed. */ + if (!opt.allow_loopback_pinentry) + force = 0; + err = parse_keygrip (ctx, line, grip); if (err) goto leave; |