aboutsummaryrefslogtreecommitdiffstats
path: root/src/sign.c
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2023-01-19 09:45:04 +0000
committerIngo Klöcker <[email protected]>2023-01-19 09:45:04 +0000
commit0ca45e48b45af1978027e6fe26c7e406fd5ec74b (patch)
treeb5954cd207e33c4fc7cfa90b62503139e344b67e /src/sign.c
parentcore: Fix --set-filename argument (diff)
downloadgpgme-0ca45e48b45af1978027e6fe26c7e406fd5ec74b.tar.gz
gpgme-0ca45e48b45af1978027e6fe26c7e406fd5ec74b.zip
core: Support usage of gpgtar for creating a signed archive
* src/gpgme.h.in (GPGME_SIG_MODE_ARCHIVE): New signature mode. * src/engine-gpg.c (append_args_from_sender, append_args_from_sig_notations): Use add_gpg_arg_with_value for gpg-only options with a value. (gpg_sign): Set use_gpgtar engine flag if GPGME_SIG_MODE_ARCHIVE mode is set. Check for new enough gpg. 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/sign.c (sign_start): Add GPGME_SIG_MODE_ARCHIVE as valid mode. * tests/run-sign.c (show_usage): New options --archive and --diagnostics. (main): Parse new options. Sign with gpgtar if --archive is given. Print stderr of gpg/gpgtar if --diagnostics is given. -- With this change the gpgme_op_sign* functions get support for creating a signed archive from files and/or directories passed as NUL-separated list in the "in" data with gpgtar. GnuPG-bug-id: 6342
Diffstat (limited to 'src/sign.c')
-rw-r--r--src/sign.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sign.c b/src/sign.c
index 31db9bde..7617d27f 100644
--- a/src/sign.c
+++ b/src/sign.c
@@ -447,7 +447,7 @@ sign_start (gpgme_ctx_t ctx, int synchronous, gpgme_data_t plain,
return err;
if (mode != GPGME_SIG_MODE_NORMAL && mode != GPGME_SIG_MODE_DETACH
- && mode != GPGME_SIG_MODE_CLEAR)
+ && mode != GPGME_SIG_MODE_CLEAR && mode != GPGME_SIG_MODE_ARCHIVE)
return gpg_error (GPG_ERR_INV_VALUE);
if (!plain)