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.

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

index 05d14f11ecd4ae5784f78d8edd77736cff397dac..f4c390988af971cb6f9a89d5a29320a2cd506af7 100644 (file)
@@ -1,6 +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.
@@ -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_ENCRYPT_NO_ENCRYPT_TO    NEW.
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
index 3646472ec525168761ea26531f7eef1af90ea471..e1f362252c9754e31870acf98675c3d2c463aa35 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.
index d66216abfb2a634dd9f22158ec4cfc22d8148b28..0d5435f9614aa7fade2293a58cf59276f9799303 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.
+
+@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
index 9237bd6aa980e4a87a0f3a0a81df48a691771299..434c68024a8b794940e52e789bd1c0b614929396 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
index e4334d14a891b8735e1eb48bce688a9364290d92..606b4d7654d0b8681166d35d4f2708aabbad61ff 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 (!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);
     }
index bdd1ff924d195f08e9ad297223a83487c91ab493..49d36c12698ae7b77a6a4376e6aa56f6c8cf212e 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 (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)
index e42b3b89a5e5f161b94a1e5bfa93d5f254aa0efb..fb2b7363a6db21f1755e153322c204b9615d5b6d 100644 (file)
@@ -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;