int main (int argc, char *argv[]) { gpgme_ctx_t ctx; gpgme_error_t err; gpgme_data_t out; const char *pattern1[] = { "DFN Top Level Certification Authority", NULL }; const char *pattern2[] = { "3CF405464F66ED4A7DF45BBDD1E4282E33BDB76E", "DFN Server Certification Authority", NULL }; init_gpgme (GPGME_PROTOCOL_CMS); err = gpgme_new (&ctx); fail_if_err (err); gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS); gpgme_set_armor (ctx, 1); /* Check exporting of one certificate. */ err = gpgme_data_new (&out); fail_if_err (err); err = gpgme_op_export_ext (ctx, pattern1, 0, out); fail_if_err (err); fflush (NULL); fputs ("Begin Result:\n", stdout); print_data (out); fputs ("End Result.\n", stdout); gpgme_data_release (out); /* Check exporting of 2 certificates. */ err = gpgme_data_new (&out); fail_if_err (err); err = gpgme_op_export_ext (ctx, pattern2, 0, out); fail_if_err (err); fflush (NULL); fputs ("Begin Result:\n", stdout); print_data (out); fputs ("End Result.\n", stdout); gpgme_data_release (out); gpgme_release (ctx); return 0; }
int op_export_keys (const char *pattern[], const char *outfile) { /* @untested@ */ gpgme_ctx_t ctx=NULL; gpgme_data_t out=NULL; gpgme_error_t err; err = gpgme_new (&ctx); if (err) return err; err = gpgme_data_new (&out); if (err) { gpgme_release (ctx); return err; } gpgme_set_armor (ctx, 1); err = gpgme_op_export_ext (ctx, pattern, 0, out); if (!err) data_to_file (&out, outfile); gpgme_data_release (out); gpgme_release (ctx); return err; }
static PyObject * pygpgme_context_export(PyGpgmeContext *self, PyObject *args) { PyObject *py_pattern, *py_keydata; char **patterns = NULL; gpgme_data_t keydata; gpgme_error_t err; if (!PyArg_ParseTuple(args, "OO", &py_pattern, &py_keydata)) return NULL; if (parse_key_patterns(py_pattern, &patterns) < 0) return NULL; if (pygpgme_data_new(&keydata, py_keydata)) { if (patterns) free_key_patterns(patterns); return NULL; } Py_BEGIN_ALLOW_THREADS; err = gpgme_op_export_ext(self->ctx, (const char **)patterns, 0, keydata); Py_END_ALLOW_THREADS; if (patterns) free_key_patterns(patterns); gpgme_data_release(keydata); if (pygpgme_check_error(err)) return NULL; Py_RETURN_NONE; }