mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: Avoid importing secret keys if the keyblock is not valid.
* g10/keydb.h (struct kbnode_struct): Replace unused field RECNO by new field TAG. * g10/kbnode.c (alloc_node): Change accordingly. * g10/import.c (import_one): Add arg r_valid. (sec_to_pub_keyblock): Set tags. (resync_sec_with_pub_keyblock): New. (import_secret_one): Change return code to gpg_error_t. Return an error code if sec_to_pub_keyblock failed. Resync secret keyblock. -- When importing an invalid secret key ring for example without key binding signatures or no UIDs, gpg used to let gpg-agent store the secret keys anyway. This is clearly a bug because the diagnostics before claimed that for example the subkeys have been skipped. Importing the secret key parameters then anyway is surprising in particular because a gpg -k does not show the key. After importing the public key the secret keys suddenly showed up. This changes the behaviour of GnuPG-bug-id: 4392 to me more consistent but is not a solution to the actual bug. Caution: The ecc.scm test now fails because two of the sample keys don't have binding signatures. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
8c20a363c2
commit
f799e9728b
6 changed files with 112 additions and 31 deletions
|
@ -175,7 +175,7 @@ Rg==
|
|||
(display "This is one line\n" (fdopen fd "wb")))
|
||||
|
||||
(for-each-p
|
||||
"Checking ECDSA decryption"
|
||||
"Checking ECDH decryption"
|
||||
(lambda (test)
|
||||
(lettmp (x y)
|
||||
(call-with-output-file
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue