2002-06-25 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Tue, 25 Jun 2002 11:14:44 +0000 (11:14 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Tue, 25 Jun 2002 11:14:44 +0000 (11:14 +0000)
* engine-gpgsm.c (_gpgme_gpgsm_op_export): Implement.

gpgme/ChangeLog
gpgme/engine-gpgsm.c

index b896650a48a93d85c988e7565fa8a951ca584567..cd73a3e25260ff23bce9736312f9094710ad10fe 100644 (file)
@@ -1,3 +1,7 @@
+2002-06-25  Marcus Brinkmann  <marcus@g10code.de>
+
+       * engine-gpgsm.c (_gpgme_gpgsm_op_export): Implement.
+
 2002-06-21  Marcus Brinkmann  <marcus@g10code.de>
 
        * engine-gpgsm.c (gpgsm_assuan_simple_command): Return ERR.
index 7e26f0dda7baffa0784d3768441e64368d9f1e4d..6115b25b74d6e1942e67ff328b33d63a649c2453 100644 (file)
@@ -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;
 }