diff options
| author | Marcus Brinkmann <[email protected]> | 2005-04-28 16:11:34 +0000 | 
|---|---|---|
| committer | Marcus Brinkmann <[email protected]> | 2005-04-28 16:11:34 +0000 | 
| commit | 02a1dbee30e990b25dae67fe3406dbac1463f509 (patch) | |
| tree | 5cb51a7d4ecc41b75c6d97e8ae673a3bf356791a | |
| parent | (calc_sig_summary): Set the key revoked bit. (diff) | |
| download | gpgme-02a1dbee30e990b25dae67fe3406dbac1463f509.tar.gz gpgme-02a1dbee30e990b25dae67fe3406dbac1463f509.zip | |
doc/
2005-04-28  Marcus Brinkmann  <[email protected]>
        * gpgme.texi (Included Certificates): Document
        GPGME_INCLUDE_CERTS_DEFAULT.
gpgme/
2005-04-28  Marcus Brinkmann  <[email protected]>
        * 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.
Diffstat (limited to '')
| -rw-r--r-- | NEWS | 11 | ||||
| -rw-r--r-- | doc/ChangeLog | 5 | ||||
| -rw-r--r-- | doc/gpgme.texi | 3 | ||||
| -rw-r--r-- | gpgme/ChangeLog | 9 | ||||
| -rw-r--r-- | gpgme/engine-gpgsm.c | 22 | ||||
| -rw-r--r-- | gpgme/gpgme.c | 8 | ||||
| -rw-r--r-- | gpgme/gpgme.h | 3 | 
7 files changed, 51 insertions, 10 deletions
| @@ -4,10 +4,21 @@ Noteworthy changes in version 1.1.0 (unreleased)   * 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  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/ChangeLog b/doc/ChangeLog index d53f017b..5061d3a3 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2005-04-28  Marcus Brinkmann  <[email protected]> + +	* gpgme.texi (Included Certificates): Document +	GPGME_INCLUDE_CERTS_DEFAULT. +  2005-01-12  Marcus Brinkmann  <[email protected]>  	* gpgme.texi (Engine Configuration): New section. diff --git a/doc/gpgme.texi b/doc/gpgme.texi index f68b41be..9c6b42fb 100644 --- a/doc/gpgme.texi +++ b/doc/gpgme.texi @@ -2028,6 +2028,9 @@ default, only the sender's certificate is included.  The possible  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 diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 0a4a9ae2..275db84b 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,12 @@ +2005-04-28  Marcus Brinkmann  <[email protected]> + +	* 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  <[email protected]>  	* verify.c (calc_sig_summary): Set the key revoked bit. diff --git a/gpgme/engine-gpgsm.c b/gpgme/engine-gpgsm.c index ea6ccc74..c96be888 100644 --- a/gpgme/engine-gpgsm.c +++ b/gpgme/engine-gpgsm.c @@ -1437,19 +1437,27 @@ gpgsm_sign (void *engine, gpgme_data_t in, gpgme_data_t out,    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; diff --git a/gpgme/gpgme.c b/gpgme/gpgme.c index 9e5171c9..5eb40bea 100644 --- a/gpgme/gpgme.c +++ b/gpgme/gpgme.c @@ -222,12 +222,14 @@ gpgme_get_textmode (gpgme_ctx_t ctx)  /* 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; diff --git a/gpgme/gpgme.h b/gpgme/gpgme.h index 3db2d972..c3f5123b 100644 --- a/gpgme/gpgme.h +++ b/gpgme/gpgme.h @@ -706,6 +706,9 @@ void gpgme_set_textmode (gpgme_ctx_t ctx, int yes);  /* 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); | 
