[Pkg-gnupg-commit] [gnupg2] 14/49: gpg: Fix creating on-disk subkey with on-card primary key.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Nov 8 19:30:52 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 44fb3fbc85b32552c91f32f099b6b246c12ce0cc
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Oct 19 18:10:37 2017 +0200

    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 <wk at gnupg.org>
---
 g10/keygen.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/g10/keygen.c b/g10/keygen.c
index 2b17a1e..8f30b7e 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;
   }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list