aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/engine-gpg.c5
-rw-r--r--src/engine-gpgsm.c8
-rw-r--r--src/gpgme.h.in3
4 files changed, 21 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9237bd6a..434c6802 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2009-05-18 Marcus Brinkmann <[email protected]>
+
+ * gpgme.h.in (gpgme_encrypt_flags_t): Add
+ GPGME_ENCRYPT_NO_ENCRYPT_TO.
+ * engine-gpg.c (gpg_encrypt): Pass --no-encrypt-to to gpg if
+ GPGME_ENCRYPT_NO_ENCRYPT_TO flag is set.
+
2009-05-14 Werner Koch <[email protected]>
* gpgme.h.in (gpgme_status_code_t): Explicitly initialize for
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index e4334d14..606b4d76 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -1611,9 +1611,12 @@ gpg_encrypt (void *engine, gpgme_key_t recp[], gpgme_encrypt_flags_t flags,
{
/* If we know that all recipients are valid (full or ultimate trust)
we can suppress further checks. */
- if (!err && !symmetric && (flags & GPGME_ENCRYPT_ALWAYS_TRUST))
+ if (!err && (flags & GPGME_ENCRYPT_ALWAYS_TRUST))
err = add_arg (gpg, "--always-trust");
+ if (!err && (flags & GPGME_ENCRYPT_NO_ENCRYPT_TO))
+ err = add_arg (gpg, "--no-encrypt-to");
+
if (!err)
err = append_args_from_recipients (gpg, recp);
}
diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c
index bdd1ff92..49d36c12 100644
--- a/src/engine-gpgsm.c
+++ b/src/engine-gpgsm.c
@@ -1349,6 +1349,14 @@ gpgsm_encrypt (void *engine, gpgme_key_t recp[], gpgme_encrypt_flags_t flags,
if (!recp)
return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
+ if (flags & GPGME_ENCRYPT_NO_ENCRYPT_TO)
+ {
+ err = gpgsm_assuan_simple_command (gpgsm->assuan_ctx,
+ "OPTION no-encrypt-to", NULL, NULL);
+ if (err)
+ return err;
+ }
+
gpgsm->input_cb.data = plain;
err = gpgsm_set_fd (gpgsm, INPUT_FD, map_data_enc (gpgsm->input_cb.data));
if (err)
diff --git a/src/gpgme.h.in b/src/gpgme.h.in
index e42b3b89..fb2b7363 100644
--- a/src/gpgme.h.in
+++ b/src/gpgme.h.in
@@ -1168,7 +1168,8 @@ gpgme_encrypt_result_t gpgme_op_encrypt_result (gpgme_ctx_t ctx);
/* The valid encryption flags. */
typedef enum
{
- GPGME_ENCRYPT_ALWAYS_TRUST = 1
+ GPGME_ENCRYPT_ALWAYS_TRUST = 1,
+ GPGME_ENCRYPT_NO_ENCRYPT_TO = 2
}
gpgme_encrypt_flags_t;