g10: Signal an error when trying to revoke non-existant UID.
authorJustus Winter <justus@g10code.com>
Thu, 2 Mar 2017 10:39:00 +0000 (11:39 +0100)
committerJustus Winter <justus@g10code.com>
Thu, 2 Mar 2017 10:39:00 +0000 (11:39 +0100)
* g10/keyedit.c (keyedit_quick_revuid): Signal an error when trying to
revoke non-existant UID.
* tests/openpgp/quick-key-manipulation.scm: Test that.

GnuPG-bug-id: 2962
Signed-off-by: Justus Winter <justus@g10code.com>
g10/keyedit.c
tests/openpgp/quick-key-manipulation.scm

index 892da1a..c591600 100644 (file)
@@ -3053,6 +3053,8 @@ keyedit_quick_revuid (ctrl_t ctrl, const char *username, const char *uidtorev)
         }
     }
 
+  log_error (_("User ID revocation failed: %s\n"), gpg_strerror (GPG_ERR_NOT_FOUND));
+
  leave:
   release_kbnode (keyblock);
   keydb_release (kdbhd);
index 7ede5e9..8ceb035 100755 (executable)
@@ -37,6 +37,7 @@
 
 (define alpha "Alpha <alpha@invalid.example.net>")
 (define bravo "Bravo <bravo@invalid.example.net>")
+(define charlie "Charlie <charlie@invalid.example.net>")
 
 (define (key-data key)
   (filter (lambda (x) (or (string=? (car x) "pub")
 (info "Checking that we can revoke a user ID...")
 (call-check `(,@GPG --quick-revoke-uid ,(exact bravo) ,alpha))
 
+(info "Checking that we get an error revoking a non-existant user ID.")
+(catch '()
+       (call-check `(,@GPG --quick-revoke-uid ,(exact bravo) ,charlie))
+       (error "Expected an error, but get none."))
+
 (assert (= 1 (count-uids-of-secret-key bravo)))
 
 (info "Checking that we can change the expiration time.")