diff options
author | Ingo Klöcker <[email protected]> | 2022-01-03 15:25:40 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-01-04 08:23:40 +0000 |
commit | 0e19c4879193ed7fa61ad5d488f237b2b5b5d1d7 (patch) | |
tree | 597edbb9f50c2a2f874d9b1f56592ab7bb4c900e /src/engine-gpg.c | |
parent | doc: Remove documentation of obsolete export mode flag (diff) | |
download | gpgme-0e19c4879193ed7fa61ad5d488f237b2b5b5d1d7.tar.gz gpgme-0e19c4879193ed7fa61ad5d488f237b2b5b5d1d7.zip |
core: New export mode to export secret subkeys.
* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET_SUBKEY): New.
* src/export.c (check_mode): Allow new mode and check for invalid
combinations.
(export_keys_start): Return error if new mode flag is set.
* src/engine-gpg.c (export_common): Implement.
* src/gpgme-tool.c (cmd_export): New option --secret-subkey.
* tests/run-export.c (main): New option --secret-subkey.
--
This adds support for exporting secret subkeys (via gpg's
--export-secret-subkeys) to gpgme_op_export[_ext][_start].
The flag is not supported by gpgme_op_export_keys[_start] because
there is no way to specify which subkey(s) to export with these
functions.
GnuPG-bug-id: 5757
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r-- | src/engine-gpg.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c index fd39ad76..f619a646 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -2354,7 +2354,8 @@ export_common (engine_gpg_t gpg, gpgme_export_mode_t mode, if ((mode & ~(GPGME_EXPORT_MODE_EXTERN |GPGME_EXPORT_MODE_MINIMAL |GPGME_EXPORT_MODE_SSH - |GPGME_EXPORT_MODE_SECRET))) + |GPGME_EXPORT_MODE_SECRET + |GPGME_EXPORT_MODE_SECRET_SUBKEY))) return gpg_error (GPG_ERR_NOT_SUPPORTED); if ((mode & GPGME_EXPORT_MODE_MINIMAL)) @@ -2379,7 +2380,9 @@ export_common (engine_gpg_t gpg, gpgme_export_mode_t mode, } else { - if ((mode & GPGME_EXPORT_MODE_SECRET)) + if ((mode & GPGME_EXPORT_MODE_SECRET_SUBKEY)) + err = add_arg (gpg, "--export-secret-subkeys"); + else if ((mode & GPGME_EXPORT_MODE_SECRET)) err = add_arg (gpg, "--export-secret-keys"); else err = add_arg (gpg, "--export"); |