doc/
authorMarcus Brinkmann <mb@g10code.com>
Mon, 18 May 2009 17:38:31 +0000 (17:38 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Mon, 18 May 2009 17:38:31 +0000 (17:38 +0000)
2009-05-18  Marcus Brinkmann  <marcus@g10code.de>

        * gpgme.texi (Encrypting a Plaintext): Document
        GPGME_ENCRYPT_NO_ENCRYPT_TO.

src/
2009-05-18  Marcus Brinkmann  <marcus@g10code.de>

        * 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.

NEWS
doc/ChangeLog
doc/gpgme.texi
src/ChangeLog
src/engine-gpg.c
src/engine-gpgsm.c
src/gpgme.h.in

diff --git a/NEWS b/NEWS
index 05d14f1..f4c3909 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,9 @@
 Noteworthy changes in version 1.1.9
 ------------------------------------------------
 
 Noteworthy changes in version 1.1.9
 ------------------------------------------------
 
+ * New encryption flag GPGME_ENCRYPT_NO_ENCRYPT_TO to disable default
+   recipients.
+
  * Interface changes relative to the 1.1.7 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  GPGME_KEYLIST_MODE_EPHEMERAL   NEW.
  * Interface changes relative to the 1.1.7 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  GPGME_KEYLIST_MODE_EPHEMERAL   NEW.
@@ -12,6 +15,7 @@ Noteworthy changes in version 1.1.9
  gpgme_op_assuan_transact       NEW.
  gpgme_op_assuan_result         NEW.
  gpgme_subkey_t                 EXTENDED: New fields is_cardkey, card_number.
  gpgme_op_assuan_transact       NEW.
  gpgme_op_assuan_result         NEW.
  gpgme_subkey_t                 EXTENDED: New fields is_cardkey, card_number.
+ GPGME_ENCRYPT_NO_ENCRYPT_TO    NEW.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
index 3646472..e1f3622 100644 (file)
@@ -1,3 +1,8 @@
+2009-05-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.texi (Encrypting a Plaintext): Document
+       GPGME_ENCRYPT_NO_ENCRYPT_TO.
+
 2009-05-05  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Engine Information): Replace path by file_name.
 2009-05-05  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpgme.texi (Engine Information): Replace path by file_name.
index d66216a..0d5435f 100644 (file)
@@ -4723,6 +4723,12 @@ The @code{GPGME_ENCRYPT_ALWAYS_TRUST} symbol specifies that all the
 recipients in @var{recp} should be trusted, even if the keys do not
 have a high enough validity in the keyring.  This flag should be used
 with care; in general it is not a good idea to use any untrusted keys.
 recipients in @var{recp} should be trusted, even if the keys do not
 have a high enough validity in the keyring.  This flag should be used
 with care; in general it is not a good idea to use any untrusted keys.
+
+@item GPGME_ENCRYPT_NO_ENCRYPT_TO
+The @code{GPGME_ENCRYPT_NO_ENCRYPT_TO} symbol specifies that no
+default or hidden default recipients as configured in the crypto
+backend should be included.  This can be useful for managing different
+user profiles.
 @end table
 
 If @code{GPG_ERR_UNUSABLE_PUBKEY} is returned, some recipients in
 @end table
 
 If @code{GPG_ERR_UNUSABLE_PUBKEY} is returned, some recipients in
index 9237bd6..434c680 100644 (file)
@@ -1,3 +1,10 @@
+2009-05-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * 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  <wk@g10code.com>
 
        * gpgme.h.in (gpgme_status_code_t): Explicitly initialize for
 2009-05-14  Werner Koch  <wk@g10code.com>
 
        * gpgme.h.in (gpgme_status_code_t): Explicitly initialize for
index e4334d1..606b4d7 100644 (file)
@@ -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 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");
 
        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);
     }
       if (!err)
        err = append_args_from_recipients (gpg, recp);
     }
index bdd1ff9..49d36c1 100644 (file)
@@ -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 (!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)
   gpgsm->input_cb.data = plain;
   err = gpgsm_set_fd (gpgsm, INPUT_FD, map_data_enc (gpgsm->input_cb.data));
   if (err)
index e42b3b8..fb2b736 100644 (file)
@@ -1168,7 +1168,8 @@ gpgme_encrypt_result_t gpgme_op_encrypt_result (gpgme_ctx_t ctx);
 /* The valid encryption flags.  */
 typedef enum
   {
 /* 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;
 
   }
 gpgme_encrypt_flags_t;