mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
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@g10code.com> GnuPG-bug-id: 2697
This commit is contained in:
parent
7e0379a754
commit
df5353b95e
@ -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);
|
||||
|
@ -37,6 +37,11 @@
|
||||
(define alpha "Alpha <alpha@example.net>")
|
||||
(define bravo "Bravo <bravo@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 `(,@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 `(,@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 `(,@GPG --check-trustdb)) ; XXX why?
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user