Diffusion GnuPG 5205512fc092

gpg: Allow import of PGP desktop exported secret keys.

Authored by werner on Mar 18 2019, 1:07 PM.

Description

gpg: Allow import of PGP desktop exported secret keys.

* g10/import.c (NODE_TRANSFER_SECKEY): New.
(import): Add attic kludge.
(transfer_secret_keys): Add arg only_marked.
(resync_sec_with_pub_keyblock): Return removed seckeys via new arg
r_removedsecs.
(import_secret_one): New arg r_secattic.  Change to take ownership of
arg keyblock.  Implement extra secret key import logic.  Factor some
code out to ...
(do_transfer): New.
(import_matching_seckeys): New.

The PGP desktops exported secret keys are really stupid. And they
even a have kind of exception in rfc4880 which does not rule that
out (section 11.2):

[...]  Implementations SHOULD include self-signatures on any user
IDs and subkeys, as this allows for a complete public key to be
automatically extracted from the transferable secret key.
Implementations MAY choose to omit the self-signatures, especially
if a transferable public key accompanies the transferable secret
key.

Now if they would only put the public key before the secret
key. Anyway we now have a workaround for that ugliness.

  • GnuPG-bug-id: T4392
  • Signed-off-by: Werner Koch <wk@gnupg.org>