gpg: --delete-secret-key - check that a secret key exists.
authorWerner Koch <wk@gnupg.org>
Thu, 18 Sep 2014 14:00:34 +0000 (16:00 +0200)
committerWerner Koch <wk@gnupg.org>
Sat, 20 Sep 2014 14:27:16 +0000 (16:27 +0200)
* g10/delkey.c (do_delete_key): Check availibility of a secret key.
--

Actually we check that at least one secret subkey exists.

g10/delkey.c

index 3de705d..063de78 100644 (file)
@@ -111,6 +111,15 @@ do_delete_key( const char *username, int secret, int force, int *r_sec_avail )
         err = 0;
     }
 
         err = 0;
     }
 
+  if (secret && !have_secret_key_with_kid (keyid))
+    {
+      err = gpg_error (GPG_ERR_NOT_FOUND);
+      log_error (_("key \"%s\" not found: %s\n"), username, gpg_strerror (err));
+      write_status_text (STATUS_DELETE_PROBLEM, "1");
+      goto leave;
+    }
+
+
   if (opt.batch && exactmatch)
     okay++;
   else if (opt.batch && secret)
   if (opt.batch && exactmatch)
     okay++;
   else if (opt.batch && secret)