aboutsummaryrefslogtreecommitdiffstats
path: root/gpgme/rungpg.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gpgme/rungpg.c21
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);