diff options
author | Ingo Klöcker <[email protected]> | 2023-01-18 10:48:02 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2023-01-18 10:48:02 +0000 |
commit | 5d8316da1d3dd0ab73743898e76c51932d0f13e2 (patch) | |
tree | 7621431247d6fa0bbe548a138aac3d5efe5bcdf1 /src/gpgme.h.in | |
parent | core: Defer adding --status-fd and --logger-fd to argument list (diff) | |
download | gpgme-5d8316da1d3dd0ab73743898e76c51932d0f13e2.tar.gz gpgme-5d8316da1d3dd0ab73743898e76c51932d0f13e2.zip |
core: Support usage of gpgtar for encryption
* src/gpgme.h.in (GPGME_ENCRYPT_ARCHIVE): New encryption flag.
* src/engine-gpg.c (arg_and_data_s): New field gpg_arg.
(engine_gpg): New flag use_gpgtar.
(_add_arg): Add argument gpg_arg and set it.
(add_arg_ext, add_arg_with_locp, add_arg, add_arg_pfx, add_arg_len):
Adjust call of _add_arg.
(add_arg_with_locp): Add argument front.
(add_gpg_arg, add_gpg_arg_with_value): New.
(gpg_new): Use add_gpg_arg_with_value for gpg-only options with a value
and add_gpg_arg for gpg-only options without.
(build_argv): Consider usage of gpgtar when counting arguments to pass
to gpg/gpgtar. Prepend "--gpg-args" to all gpg-only arguments if gpgtar
is used.
(start): Set program to use. Read diagnostics output from stderr when
using gpgtar. Do not pass --status-fd to gpgtar for gpg < 2.4.1. Use
add_gpg_arg_with_value for --lc-ctype and --lc-messages.
(gpg_encrypt): Set use_gpgtar engine flag if GPGME_ENCRYPT_ARCHIVE flag
is set. Check for new enough gpg and incompatible flags. Use
add_gpg_arg_with_value for gpg-only options with a value and
add_gpg_arg for gpg-only options without a value. Set extra options
for gpgtar and pass input data to stdin when using gpgtar.
* src/engine-gpgsm.c (gpgsm_encrypt): Return error if new flag is set.
* src/engine-uiserver.c (uiserver_encrypt): Ditto.
* tests/run-encrypt.c (show_usage): New options --archive and
--diagnostics.
(main): Parse new options. Encrypt with gpgtar if --archive is given.
Print stderr of gpg/gpgtar if --diagnostics is given.
--
With this change the gpgme_op_encrypt* functions get support for
encrypting a list of files and/or directories passed as NUL-separated
list in "plain" data with gpgtar.
GnuPG-bug-id: 6342
Diffstat (limited to 'src/gpgme.h.in')
-rw-r--r-- | src/gpgme.h.in | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpgme.h.in b/src/gpgme.h.in index 502d68cd..db1f8f13 100644 --- a/src/gpgme.h.in +++ b/src/gpgme.h.in @@ -1299,7 +1299,8 @@ typedef enum GPGME_ENCRYPT_SYMMETRIC = 32, GPGME_ENCRYPT_THROW_KEYIDS = 64, GPGME_ENCRYPT_WRAP = 128, - GPGME_ENCRYPT_WANT_ADDRESS = 256 + GPGME_ENCRYPT_WANT_ADDRESS = 256, + GPGME_ENCRYPT_ARCHIVE = 512 } gpgme_encrypt_flags_t; |