diff options
| author | Ingo Klöcker <[email protected]> | 2026-01-14 13:58:49 +0100 |
|---|---|---|
| committer | Ingo Klöcker <[email protected]> | 2026-01-14 16:09:19 +0100 |
| commit | 1823e06216f2e9eee302ae1233d635a4a92c03f6 (patch) | |
| tree | 48dcdf844916b16f886b10d8dd2a0405c431420b /tests | |
| parent | tests: It's start-stop-agent which invokes gpg-agent. (diff) | |
| download | gpgme-1823e06216f2e9eee302ae1233d635a4a92c03f6.tar.gz gpgme-1823e06216f2e9eee302ae1233d635a4a92c03f6.zip | |
Allow setting export filters when exporting keys
* src/context.h (struct gpgme_context): New field export_filter.
* src/engine-backend.h (struct engine_ops): Add arg export_filter to
field 'export' and field 'export_ext'.
* src/engine-gpg.c (export_common): Add arg export_filter and pass
option --export-filter with argument value to gpg.
(gpg_export, gpg_export_ext): Add arg export_filter and pass it to
export_common. Adjust all callers of the two functions.
* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Add dummy arg
export_filter.
* src/gpgme.c (gpgme_release): Free 'export_filter'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "export-filter".
* tests/run-export.c (main): Add option --export-filter.
--
This makes the --export-filter option available in the GPGME API for
key exports.
GnuPG-bug-id: 8033
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run-export.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/run-export.c b/tests/run-export.c index 3e328826..c82c1137 100644 --- a/tests/run-export.c +++ b/tests/run-export.c @@ -62,6 +62,7 @@ show_usage (int ex) " --secret-subkey export secret subkeys instead of public keys\n" " --raw use PKCS#1 as secret key format\n" " --pkcs12 use PKCS#12 as secret key format\n" + " --export-filter use the specified export filter\n" , stderr); exit (ex); } @@ -80,6 +81,7 @@ main (int argc, char **argv) gpgme_protocol_t protocol = GPGME_PROTOCOL_OpenPGP; gpgme_export_mode_t mode = 0; int print_status = 0; + char *export_filter = NULL; if (argc) { argc--; argv++; } @@ -144,6 +146,14 @@ main (int argc, char **argv) mode |= GPGME_EXPORT_MODE_PKCS12; argc--; argv++; } + else if (!strcmp (*argv, "--export-filter")) + { + argc--; argv++; + if (!argc) + show_usage (1); + export_filter = strdup (*argv); + argc--; argv++; + } else if (!strncmp (*argv, "--", 2)) show_usage (1); @@ -162,6 +172,11 @@ main (int argc, char **argv) gpgme_set_status_cb (ctx, status_cb, NULL); gpgme_set_ctx_flag (ctx, "full-status", "1"); } + if (export_filter) + { + err = gpgme_set_ctx_flag (ctx, "export-filter", export_filter); + fail_if_err (err); + } err = gpgme_data_new (&out); fail_if_err (err); |
