1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-02-01 16:33:02 +01:00
Werner Koch f799e9728b
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>
2019-03-15 20:41:38 +01:00
..
2018-10-24 15:56:18 -04:00
2018-11-08 12:14:23 +09:00
2018-05-29 12:42:52 +02:00
2017-03-07 20:25:54 +09:00
2018-01-21 16:30:53 +01:00
2017-11-22 20:54:47 +01:00
2019-03-14 08:23:38 +09:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2015-02-04 09:15:34 +01:00
2019-03-14 14:55:06 +01:00
2015-02-04 09:15:34 +01:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2018-10-25 16:53:05 -04:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-01-23 19:16:55 +01:00
2017-02-21 13:11:46 -05:00
2017-03-07 20:32:09 +09:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2018-09-14 08:11:45 +09:00
2016-03-08 14:08:49 +01:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2016-12-06 12:16:56 +01:00
2018-10-24 15:56:18 -04:00