From c41c46fa84cabbed74a13ded51fc3a817a919367 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 10 Jun 2016 16:15:36 -0400 Subject: g10: Export cleartext keys as cleartext * g10/export.c (do_export_stream): If a key is stored by the agent in cleartext, then try to export it as cleartext. * tests/openpgp/export.test: For secret keys that are stored in cleartext, test should try to export without pinentry interaction. -- This restores the behavior of GnuPG 2.0 and 1.4 when exporting passphraseless secret keys, and fixes the test suite accordingly. GnuPG-bug-id: 2070, 2324 Signed-off-by: Daniel Kahn Gillmor --- g10/export.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'g10/export.c') diff --git a/g10/export.c b/g10/export.c index 25a331905..870cb458e 100644 --- a/g10/export.c +++ b/g10/export.c @@ -1141,6 +1141,7 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, gcry_cipher_hd_t cipherhd = NULL; char *cache_nonce = NULL; struct export_stats_s dummystats; + int cleartext = 0; if (!stats) stats = &dummystats; @@ -1445,7 +1446,7 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, serialno = NULL; } else - err = agent_get_keyinfo (ctrl, hexgrip, &serialno, NULL); + err = agent_get_keyinfo (ctrl, hexgrip, &serialno, &cleartext); if ((!err && serialno) && secret == 2 && node->pkt->pkttype == PKT_PUBLIC_KEY) @@ -1494,7 +1495,7 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, else if (!err) { err = receive_seckey_from_agent (ctrl, cipherhd, - 0, &cache_nonce, + cleartext, &cache_nonce, hexgrip, pk); if (err) { -- cgit v1.2.3