diff options
author | Werner Koch <[email protected]> | 2014-04-15 14:40:48 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-04-15 17:44:42 +0000 |
commit | c4d983239a3f0a18c77f0a5aeba520a81a1b86e8 (patch) | |
tree | d7ae8c7eb42b0001f343039aa5f0f5515626482e /g10/export.c | |
parent | gpg: Change pinentry prompt to talk about "secret key". (diff) | |
download | gnupg-c4d983239a3f0a18c77f0a5aeba520a81a1b86e8.tar.gz gnupg-c4d983239a3f0a18c77f0a5aeba520a81a1b86e8.zip |
gpg: Fix regression in secret key export.
* agent/cvt-openpgp.c (convert_to_openpgp): Fix use
gcry_sexp_extract_param.
* g10/export.c (do_export_stream): Provide a proper prompt to the
agent.
--
NB: The export needs more work, in particular the ECC algorithms.
Diffstat (limited to '')
-rw-r--r-- | g10/export.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/g10/export.c b/g10/export.c index fffaf7935..9aa012edd 100644 --- a/g10/export.c +++ b/g10/export.c @@ -830,6 +830,7 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, log_error ("public key packet not found in keyblock - skipped\n"); continue; } + setup_main_keyids (keyblock); /* gpg_format_keydesc needs it. */ pk = node->pkt->pkt.public_key; keyid_from_pk (pk, keyid); @@ -1077,8 +1078,13 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, log_info ("key %s: asking agent for the secret parts\n", keystr_with_sub (keyid, subkid)); - err = agent_export_key (ctrl, hexgrip, "Key foo", NULL, - &wrappedkey, &wrappedkeylen); + { + char *prompt = gpg_format_keydesc (pk, + FORMAT_KEYDESC_EXPORT,1); + err = agent_export_key (ctrl, hexgrip, prompt, NULL, + &wrappedkey, &wrappedkeylen); + xfree (prompt); + } if (err) goto unwraperror; if (wrappedkeylen < 24) |