aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2026-01-14 13:58:49 +0100
committerIngo Klöcker <[email protected]>2026-01-14 16:09:19 +0100
commit1823e06216f2e9eee302ae1233d635a4a92c03f6 (patch)
tree48dcdf844916b16f886b10d8dd2a0405c431420b /tests
parenttests: It's start-stop-agent which invokes gpg-agent. (diff)
downloadgpgme-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.c15
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);