diff options
Diffstat (limited to '')
-rw-r--r-- | gpgme/rungpg.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/gpgme/rungpg.c b/gpgme/rungpg.c index be639b97..797ae43f 100644 --- a/gpgme/rungpg.c +++ b/gpgme/rungpg.c @@ -1308,18 +1308,23 @@ _gpgme_gpg_op_encrypt (GpgObject gpg, GpgmeRecipients recp, GpgmeData plain, GpgmeData ciph, int use_armor) { GpgmeError err; + int symmetric = !recp; + + err = _gpgme_gpg_add_arg (gpg, symmetric ? "--symmetric" : "--encrypt"); - err = _gpgme_gpg_add_arg (gpg, "--encrypt"); if (!err && use_armor) err = _gpgme_gpg_add_arg (gpg, "--armor"); - /* If we know that all recipients are valid (full or ultimate trust) - * we can suppress further checks */ - if (!err && _gpgme_recipients_all_valid (recp)) - err = _gpgme_gpg_add_arg (gpg, "--always-trust"); + if (!symmetric) + { + /* If we know that all recipients are valid (full or ultimate trust) + we can suppress further checks. */ + if (!err && !symmetric && _gpgme_recipients_all_valid (recp)) + err = _gpgme_gpg_add_arg (gpg, "--always-trust"); - if (!err) - err = _gpgme_append_gpg_args_from_recipients (gpg, recp); + if (!err) + err = _gpgme_append_gpg_args_from_recipients (gpg, recp); + } /* Tell the gpg object about the data. */ if (!err) @@ -1561,6 +1566,8 @@ _gpgme_gpg_op_verify (GpgObject gpg, GpgmeData sig, GpgmeData text) if (!err) err = _gpgme_gpg_add_arg (gpg, "-"); if (!err) + err = _gpgme_gpg_add_arg (gpg, "--"); + if (!err) err = _gpgme_gpg_add_data (gpg, sig, 0); if (!err) err = _gpgme_gpg_add_data (gpg, text, 1); |