From 1823e06216f2e9eee302ae1233d635a4a92c03f6 Mon Sep 17 00:00:00 2001 From: Ingo Klöcker Date: Wed, 14 Jan 2026 13:58:49 +0100 Subject: 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 --- src/engine.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/engine.c') diff --git a/src/engine.c b/src/engine.c index d341488e..d750f7bb 100644 --- a/src/engine.c +++ b/src/engine.c @@ -760,7 +760,7 @@ _gpgme_engine_op_encrypt_sign (engine_t engine, gpgme_key_t recp[], gpgme_error_t _gpgme_engine_op_export (engine_t engine, const char *pattern, gpgme_export_mode_t mode, gpgme_data_t keydata, - int use_armor) + const char *export_filter, int use_armor) { if (!engine) return gpg_error (GPG_ERR_INV_VALUE); @@ -769,14 +769,14 @@ _gpgme_engine_op_export (engine_t engine, const char *pattern, return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->export) (engine->engine, pattern, mode, - keydata, use_armor); + keydata, export_filter, use_armor); } gpgme_error_t _gpgme_engine_op_export_ext (engine_t engine, const char *pattern[], unsigned int reserved, gpgme_data_t keydata, - int use_armor) + const char *export_filter, int use_armor) { if (!engine) return gpg_error (GPG_ERR_INV_VALUE); @@ -785,7 +785,7 @@ _gpgme_engine_op_export_ext (engine_t engine, const char *pattern[], return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return (*engine->ops->export_ext) (engine->engine, pattern, reserved, - keydata, use_armor); + keydata, export_filter, use_armor); } -- cgit