aboutsummaryrefslogtreecommitdiffstats
path: root/g10/delkey.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2002-08-02 10:15:39 +0000
committerWerner Koch <[email protected]>2002-08-02 10:15:39 +0000
commit4493a9603b65fa7b39f05452c86451766c3aa036 (patch)
treef04008f988bac60162bc6e7b382d574f024c188f /g10/delkey.c
parent* config.links: Added case for sparc64-netbsd. Suggested by (diff)
downloadgnupg-4493a9603b65fa7b39f05452c86451766c3aa036.tar.gz
gnupg-4493a9603b65fa7b39f05452c86451766c3aa036.zip
* delkey.c (do_delete_key): Always allow to delete a key in batch mode
when specified by fingerprint. Suggested by Enzo Michelangeli.
Diffstat (limited to 'g10/delkey.c')
-rw-r--r--g10/delkey.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/g10/delkey.c b/g10/delkey.c
index f9d882113..ca578a590 100644
--- a/g10/delkey.c
+++ b/g10/delkey.c
@@ -59,11 +59,15 @@ do_delete_key( const char *username, int secret, int *r_sec_avail )
int okay=0;
int yes;
KEYDB_SEARCH_DESC desc;
+ int exactmatch;
*r_sec_avail = 0;
/* search the userid */
classify_user_id (username, &desc);
+ exactmatch = (desc.mode == KEYDB_SEARCH_MODE_FPR
+ || desc.mode == KEYDB_SEARCH_MODE_FPR16
+ || desc.mode == KEYDB_SEARCH_MODE_FPR20);
rc = desc.mode? keydb_search (hd, &desc, 1):G10ERR_INV_USER_ID;
if (rc) {
log_error (_("key `%s' not found: %s\n"), username, g10_errstr (rc));
@@ -108,12 +112,20 @@ do_delete_key( const char *username, int secret, int *r_sec_avail )
if( rc )
rc = 0;
+ else if (opt.batch && exactmatch)
+ okay++;
else if( opt.batch && secret )
+ {
log_error(_("can't do that in batchmode\n"));
+ log_info (_("(unless you specify the key by fingerprint)\n"));
+ }
else if( opt.batch && opt.answer_yes )
okay++;
else if( opt.batch )
+ {
log_error(_("can't do that in batchmode without \"--yes\"\n"));
+ log_info (_("(unless you specify the key by fingerprint)\n"));
+ }
else {
char *p;
size_t n;