aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2002-06-25 11:14:44 +0000
committerMarcus Brinkmann <[email protected]>2002-06-25 11:14:44 +0000
commitea042a1fa9a2909a32ced5b0773216e745fcf927 (patch)
tree6590a57c23c4100ba61ed1097f6465f4a1f818fb
parentDisable debug output (diff)
downloadgpgme-ea042a1fa9a2909a32ced5b0773216e745fcf927.tar.gz
gpgme-ea042a1fa9a2909a32ced5b0773216e745fcf927.zip
2002-06-25 Marcus Brinkmann <[email protected]>
* engine-gpgsm.c (_gpgme_gpgsm_op_export): Implement.
Diffstat (limited to '')
-rw-r--r--gpgme/ChangeLog4
-rw-r--r--gpgme/engine-gpgsm.c20
2 files changed, 22 insertions, 2 deletions
diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog
index b896650a..cd73a3e2 100644
--- a/gpgme/ChangeLog
+++ b/gpgme/ChangeLog
@@ -1,3 +1,7 @@
+2002-06-25 Marcus Brinkmann <[email protected]>
+
+ * engine-gpgsm.c (_gpgme_gpgsm_op_export): Implement.
+
2002-06-21 Marcus Brinkmann <[email protected]>
* engine-gpgsm.c (gpgsm_assuan_simple_command): Return ERR.
diff --git a/gpgme/engine-gpgsm.c b/gpgme/engine-gpgsm.c
index 7e26f0dd..6115b25b 100644
--- a/gpgme/engine-gpgsm.c
+++ b/gpgme/engine-gpgsm.c
@@ -759,8 +759,24 @@ GpgmeError
_gpgme_gpgsm_op_export (GpgsmObject gpgsm, GpgmeRecipients recp,
GpgmeData keydata, int use_armor)
{
- /* FIXME */
- return mk_error (Not_Implemented);
+ GpgmeError err;
+
+ if (!gpgsm)
+ return mk_error (Invalid_Value);
+
+ gpgsm->command = xtrystrdup ("EXPORT");
+ if (!gpgsm->command)
+ return mk_error (Out_Of_Core);
+
+ gpgsm->output_cb.data = keydata;
+ err = gpgsm_set_fd (gpgsm->assuan_ctx, "OUTPUT", gpgsm->output_fd_server,
+ use_armor ? "--armor" : 0);
+ if (err)
+ return err;
+ _gpgme_io_close (gpgsm->input_cb.fd);
+ _gpgme_io_close (gpgsm->message_cb.fd);
+
+ return 0;
}