* You can now configure the backend engine file name and home
directory to be used, as default and per context.
+ * Previousy, GPGME would use a default "include certs" of 1. This
+ has been changed. Now GPGME will use the crypto backend engines
+ default unless you set the value with gpgme_set_include_certs()
+ explicitely. A new macro GPGME_INCLUDE_CERTS_DEFAULT can be used
+ as a value to explicitely request the new default behaviour.
+
+ Because the default changes, this is a slight change of the API
+ semantics. We consider it to be a bug fix.
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gpgme_set_engine_info NEW
gpgme_ctx_get_engine_info NEW
gpgme_ctx_set_engine_info NEW
+gpgme_set_include_certs CHANGED DEFAULT
+GPGME_INCLUDE_CERTS_DEFAULT NEW
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2005-04-28 Marcus Brinkmann <marcus@g10code.de>
+
+ * gpgme.texi (Included Certificates): Document
+ GPGME_INCLUDE_CERTS_DEFAULT.
+
2005-01-12 Marcus Brinkmann <marcus@g10code.de>
* gpgme.texi (Engine Configuration): New section.
values of @var{nr_of_certs} are:
@table @code
+@item GPGME_INCLUDE_CERTS_DEFAULT
+Fall back to the default of the crypto backend. This is the default
+for GPGME.
@item -2
Include all certificates except the root certificate.
@item -1
+2005-04-28 Marcus Brinkmann <marcus@g10code.de>
+
+ * gpgme.h (GPGME_INCLUDE_CERTS_DEFAULT): New macro.
+ * engine-gpgsm.c (gpgsm_sign): Send the include-certs option after
+ the reset, just for cleanliness, and do not sent it at all if the
+ default is requested.
+ * gpgme.c (gpgme_set_include_certs): Allow to use
+ GPGME_INCLUDE_CERTS_DEFAULT.
+
2005-04-21 Werner Koch <wk@g10code.com>
* verify.c (calc_sig_summary): Set the key revoked bit.
if (!gpgsm)
return gpg_error (GPG_ERR_INV_VALUE);
- if (asprintf (&assuan_cmd, "OPTION include-certs %i", include_certs) < 0)
- return gpg_error_from_errno (errno);
- err = gpgsm_assuan_simple_command (gpgsm->assuan_ctx, assuan_cmd, NULL,NULL);
- free (assuan_cmd);
- if (err)
- return err;
-
/* We must send a reset because we need to reset the list of
signers. Note that RESET does not reset OPTION commands. */
err = gpgsm_assuan_simple_command (gpgsm->assuan_ctx, "RESET", NULL, NULL);
if (err)
return err;
+ if (include_certs != GPGME_INCLUDE_CERTS_DEFAULT)
+ {
+ /* FIXME: Make sure that if we run multiple operations, that we
+ can reset any previously set value in case the default is
+ requested. */
+
+ if (asprintf (&assuan_cmd, "OPTION include-certs %i", include_certs) < 0)
+ return gpg_error_from_errno (errno);
+ err = gpgsm_assuan_simple_command (gpgsm->assuan_ctx, assuan_cmd,
+ NULL, NULL);
+ free (assuan_cmd);
+ if (err)
+ return err;
+ }
+
for (i = 0; (key = gpgme_signers_enum (ctx, i)); i++)
{
const char *s = key->subkeys ? key->subkeys->fpr : NULL;
/* Set the number of certifications to include in an S/MIME message.
- The default is 1 (only the cert of the sender). -1 means all
- certs, and -2 means all certs except the root cert. */
+ The default is GPGME_INCLUDE_CERTS_DEFAULT. -1 means all certs,
+ and -2 means all certs except the root cert. */
void
gpgme_set_include_certs (gpgme_ctx_t ctx, int nr_of_certs)
{
- if (nr_of_certs < -2)
+ if (nr_of_certs == GPGME_INCLUDE_CERTS_DEFAULT)
+ ctx->include_certs = GPGME_INCLUDE_CERTS_DEFAULT;
+ else if (nr_of_certs < -2)
ctx->include_certs = -2;
else
ctx->include_certs = nr_of_certs;
/* Return non-zero if text mode is set in CTX. */
int gpgme_get_textmode (gpgme_ctx_t ctx);
+/* Use whatever the default of the backend crypto engine is. */
+#define GPGME_INCLUDE_CERTS_DEFAULT -256
+
/* Include up to NR_OF_CERTS certificates in an S/MIME message. */
void gpgme_set_include_certs (gpgme_ctx_t ctx, int nr_of_certs);