[Pkg-gnupg-commit] [gnupg2] 49/292: g10: When adding a user id, make sure the keyblock has been prepared.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Mon Nov 21 06:31:25 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit df5353b95eefc13135e7df50a7c197f270d6080d
Author: Neal H. Walfield <neal at g10code.com>
Date:   Thu Sep 22 21:32:31 2016 +0200

    g10: When adding a user id, make sure the keyblock has been prepared.
    
    * g10/keyedit.c (keyedit_quick_adduid): Call merge_keys_and_selfsig on
    KEYBLOCK before adding the user id.
    * tests/openpgp/quick-key-manipulation.scm: Make sure that the key
    capabilities don't change when adding a user id.
    (key-data): New function.
    
    --
    Signed-off-by: Neal H. Walfield <neal at g10code.com>
    GnuPG-bug-id: 2697
---
 g10/keyedit.c                            |  2 ++
 tests/openpgp/quick-key-manipulation.scm | 23 ++++++++++++++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/g10/keyedit.c b/g10/keyedit.c
index cd16ec9..65ac2ea 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -2932,6 +2932,8 @@ keyedit_quick_adduid (ctrl_t ctrl, const char *username, const char *newuid)
 
   fix_keyblock (&keyblock);
 
+  merge_keys_and_selfsig (keyblock);
+
   if (menu_adduid (ctrl, keyblock, 0, NULL, uidstring))
     {
       err = keydb_update_keyblock (kdbhd, keyblock);
diff --git a/tests/openpgp/quick-key-manipulation.scm b/tests/openpgp/quick-key-manipulation.scm
index f2b8766..8a3e3f1 100755
--- a/tests/openpgp/quick-key-manipulation.scm
+++ b/tests/openpgp/quick-key-manipulation.scm
@@ -37,6 +37,11 @@
 (define alpha "Alpha <alpha at example.net>")
 (define bravo "Bravo <bravo at example.net>")
 
+(define (key-data key)
+  (filter (lambda (x) (or (string=? (car x) "pub")
+                          (string=? (car x) "sub")))
+          (gpg-with-colons `(-k ,key))))
+
 (with-temporary-working-directory
  (file-copy (path-join old-home "gpg.conf") "gpg.conf")
  (file-copy (path-join old-home "gpg-agent.conf") "gpg-agent.conf")
@@ -51,7 +56,23 @@
  (assert (= 1 (count-uids-of-secret-key alpha)))
 
  (info "Checking that we can add a user ID...")
- (call-check `(, at GPG --quick-adduid ,(exact alpha) ,bravo))
+
+ ;; Make sure the key capabilities don't change when we add a user id.
+ ;; (See bug #2697.)
+ (let ((pre (key-data (exact alpha)))
+       (result (call-check `(, at GPG --quick-adduid ,(exact alpha) ,bravo)))
+       (post (key-data (exact alpha))))
+   (if (not (equal? pre post))
+       (begin
+         (display "Key capabilities changed when adding a user id:")
+         (newline)
+         (display "  Pre: ")
+         (display pre)
+         (newline)
+         (display " Post: ")
+         (display post)
+         (newline)
+         (exit 1))))
 
  (call-check `(, at GPG --check-trustdb)) ; XXX why?
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list