summaryrefslogtreecommitdiff
path: root/src/export.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2020-11-12 13:11:08 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2020-11-12 13:11:08 +0900
commit3382ecb17eb5d2a373cf2eccb301854fff42f6aa (patch)
tree48a43dbca14d4a6501fc9324bd5d6c565c9f982e /src/export.c
parent7139afc5cdc0d8203dc75d7c91fa94b704b3d64f (diff)
downloadgpgme-3382ecb17eb5d2a373cf2eccb301854fff42f6aa.tar.gz
core: Support exporting secret keys.
* src/export.c (export_start): Set command handler for passphrase interaction for the case when it's secret keys. (export_ext_start): Likewise. -- GnuPG-bug-id: 5046 Co-authored-by: Louis Dupré Bertoni Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Diffstat (limited to 'src/export.c')
-rw-r--r--src/export.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/export.c b/src/export.c
index 7e394dff..f827efac 100644
--- a/src/export.c
+++ b/src/export.c
@@ -163,6 +163,14 @@ export_start (gpgme_ctx_t ctx, int synchronous, const char *pattern,
if (err)
return err;
+ if (ctx->passphrase_cb)
+ {
+ err = _gpgme_engine_set_command_handler
+ (ctx->engine, _gpgme_passphrase_command_handler, ctx);
+ if (err)
+ return err;
+ }
+
_gpgme_engine_set_status_handler (ctx->engine, export_status_handler, ctx);
return _gpgme_engine_op_export (ctx->engine, pattern, mode, keydata,
@@ -258,6 +266,14 @@ export_ext_start (gpgme_ctx_t ctx, int synchronous, const char *pattern[],
if (err)
return err;
+ if (ctx->passphrase_cb)
+ {
+ err = _gpgme_engine_set_command_handler
+ (ctx->engine, _gpgme_passphrase_command_handler, ctx);
+ if (err)
+ return err;
+ }
+
_gpgme_engine_set_status_handler (ctx->engine, export_status_handler, ctx);
return _gpgme_engine_op_export_ext (ctx->engine, pattern, mode, keydata,