aboutsummaryrefslogtreecommitdiffstats
path: root/g10/export.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-04-15 14:40:48 +0000
committerWerner Koch <[email protected]>2014-04-15 17:44:42 +0000
commitc4d983239a3f0a18c77f0a5aeba520a81a1b86e8 (patch)
treed7ae8c7eb42b0001f343039aa5f0f5515626482e /g10/export.c
parentgpg: Change pinentry prompt to talk about "secret key". (diff)
downloadgnupg-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.c10
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)