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; - err = add_arg (gpg, symmetric ? "--symmetric" : "--encrypt"); + if (recp) + err = add_arg (gpg, "--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. */