aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpg.c
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2023-01-30 10:58:01 +0000
committerIngo Klöcker <[email protected]>2023-01-30 11:49:11 +0000
commit48b11f576260286bddef3833e25d0059638fe0bb (patch)
tree9795561417da9c2131b1602e8984ff84a2e01b44 /src/engine-gpg.c
parentqt: Add job for creating encrypted archives (diff)
downloadgpgme-48b11f576260286bddef3833e25d0059638fe0bb.tar.gz
gpgme-48b11f576260286bddef3833e25d0059638fe0bb.zip
core: Use signature modes as flags
* src/engine-backend.h (engine_ops.sign): Rename argument mode to flags. * src/engine-gpg.c (gpg_sign): Rename argument mode to flags. Check for invalid combination of flags. * src/engine-gpgsm.c (gpgsm_sign): Rename argument mode to flags. Check for unsupported flags. * src/engine-uiserver.c (gpgsm_sign): Rename argument mode to flags. Check for unsupported flags. * src/engine.c, src/engine.h (_gpgme_engine_op_sign): Rename argument mode to flags. * src/gpgme.h.in (GPGME_SIG_MODE_ARCHIVE): Change value to 4. (gpgme_op_sign_start, gpgme_op_sign): Rename argument mode to flags. * src/sign.c (sign_start): Rename argument mode to flags. Adjust check for invalid flags. (gpgme_op_sign_start, gpgme_op_sign): Rename argument mode to flags. -- Using the signature mode constants as flags is more natural, even if currently all flags are mutually exclusive, because archives are signed with a normal signature. GnuPG-bug-id: 6342
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r--src/engine-gpg.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index e921df0a..41f24d1e 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -3580,7 +3580,7 @@ gpg_tofu_policy (void *engine, gpgme_key_t key, gpgme_tofu_policy_t policy)
static gpgme_error_t
gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out,
- gpgme_sig_mode_t mode, int use_armor, int use_textmode,
+ gpgme_sig_mode_t flags, int use_armor, int use_textmode,
int include_certs, gpgme_ctx_t ctx /* FIXME */)
{
engine_gpg_t gpg = engine;
@@ -3588,17 +3588,21 @@ gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out,
(void)include_certs;
- gpg->flags.use_gpgtar = mode == GPGME_SIG_MODE_ARCHIVE;
+ if ((flags != GPGME_SIG_MODE_NORMAL) && (flags != GPGME_SIG_MODE_DETACH)
+ && (flags != GPGME_SIG_MODE_CLEAR) && (flags != GPGME_SIG_MODE_ARCHIVE))
+ return gpg_error (GPG_ERR_INV_VALUE);
+
+ gpg->flags.use_gpgtar = !!(flags & GPGME_SIG_MODE_ARCHIVE);
if (gpg->flags.use_gpgtar && !have_gpg_version (gpg, "2.4.1"))
return gpg_error (GPG_ERR_NOT_SUPPORTED);
- if (mode == GPGME_SIG_MODE_CLEAR)
+ if (flags & GPGME_SIG_MODE_CLEAR)
err = add_arg (gpg, "--clearsign");
else
{
err = add_arg (gpg, "--sign");
- if (!err && mode == GPGME_SIG_MODE_DETACH)
+ if (!err && (flags & GPGME_SIG_MODE_DETACH))
err = add_arg (gpg, "--detach");
if (!err && use_armor)
err = add_gpg_arg (gpg, "--armor");