mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Fixed regression in OpenPGP secret key export.
The protection used in the exported key used a different iteration count than given in the S2K field. Thus all OpenPGP keys exported from GnuPG 2.1-beta can't be imported again. Given that the actual secret key material is kept in private-keys-v1.d/ the can be re-exported with this fixed version.
This commit is contained in:
parent
5da12674ea
commit
817f07173c
7 changed files with 53 additions and 6 deletions
|
@ -1046,7 +1046,10 @@ convert_to_openpgp (ctrl_t ctrl, gcry_sexp_t s_key, const char *passphrase,
|
|||
|
||||
gcry_create_nonce (protect_iv, sizeof protect_iv);
|
||||
gcry_create_nonce (salt, sizeof salt);
|
||||
s2k_count = get_standard_s2k_count ();
|
||||
/* We need to use the encoded S2k count. It is not possible to
|
||||
encode it after it has been used because the encoding procedure
|
||||
may round the value up. */
|
||||
s2k_count = get_standard_s2k_count_rfc4880 ();
|
||||
err = apply_protection (array, npkey, nskey, passphrase,
|
||||
GCRY_CIPHER_AES, protect_iv, sizeof protect_iv,
|
||||
3, GCRY_MD_SHA1, salt, s2k_count);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue