aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/engine-gpg.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index 4fad9771..efab80ac 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -1782,10 +1782,13 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[],
gpgme_ctx_t ctx /* FIXME */)
{
engine_gpg_t gpg = engine;
- gpgme_error_t err;
- int symmetric = !recp;
+ gpgme_error_t err = 0;
+
+ if (recp)
+ err = add_arg (gpg, "--encrypt");
- err = add_arg (gpg, symmetric ? "--symmetric" : "--encrypt");
+ if (!err && ((flags & GPGME_ENCRYPT_SYMMETRIC) || !recp))
+ err = add_arg (gpg, "--symmetric");
if (!err)
err = add_arg (gpg, "--sign");
@@ -1799,7 +1802,7 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[],
&& have_gpg_version (gpg, "2.1.14"))
err = add_arg (gpg, "--mimemode");
- if (!symmetric)
+ if (recp)
{
/* If we know that all recipients are valid (full or ultimate trust)
we can suppress further checks. */