diff options
author | Werner Koch <[email protected]> | 2017-10-19 16:10:37 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-10-19 16:10:37 +0000 |
commit | 44fb3fbc85b32552c91f32f099b6b246c12ce0cc (patch) | |
tree | 6812f818ca01a32d53910bd111dae4155485a947 /g10/keygen.c | |
parent | gpg: Print sec/sbb with --import-option import-show or show-only. (diff) | |
download | gnupg-44fb3fbc85b32552c91f32f099b6b246c12ce0cc.tar.gz gnupg-44fb3fbc85b32552c91f32f099b6b246c12ce0cc.zip |
gpg: Fix creating on-disk subkey with on-card primary key.
* g10/keygen.c (generate_subkeypair): Ignore error code issued for
trying to verify a card based key.
--
We try to verify the primary key and thus seed the passphrase cache
before generating the subkey. However, the verification does not yet
work for on-card keys and thus the PASSWD --verify send to the agent
returns an error. This patch detects this error and continues without
a seeded passphrase cache. After all that pre-seeding is just a
convenience.
GnuPG-bug-id: 3280
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/keygen.c')
-rw-r--r-- | g10/keygen.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/g10/keygen.c b/g10/keygen.c index 2b17a1e09..8f30b7ecc 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -5051,6 +5051,9 @@ generate_subkeypair (ctrl_t ctrl, kbnode_t keyblock, const char *algostr, err = agent_passwd (ctrl, hexgrip, desc, 1 /*=verify*/, &cache_nonce, &passwd_nonce); xfree (desc); + if (gpg_err_code (err) == GPG_ERR_NOT_IMPLEMENTED + && gpg_err_source (err) == GPG_ERR_SOURCE_GPGAGENT) + err = 0; /* Very likely that the key is on a card. */ if (err) goto leave; } |