diff options
| author | Werner Koch <[email protected]> | 2006-01-03 18:31:48 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2006-01-03 18:31:48 +0000 | 
| commit | 3c1c9ed5721d2cb2c5c4adc0b7ff5b52eeb0eabf (patch) | |
| tree | f65102dc1066bdeffe553548912efcb64399743f | |
| parent | 2006-01-03 Marcus Brinkmann <[email protected]> (diff) | |
| download | gpgme-3c1c9ed5721d2cb2c5c4adc0b7ff5b52eeb0eabf.tar.gz gpgme-3c1c9ed5721d2cb2c5c4adc0b7ff5b52eeb0eabf.zip | |
Added PKA stuff
| -rw-r--r-- | NEWS | 4 | ||||
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | gpgme/ChangeLog | 8 | ||||
| -rw-r--r-- | gpgme/gpgme.h | 9 | ||||
| -rw-r--r-- | gpgme/verify.c | 16 | 
5 files changed, 28 insertions, 11 deletions
| @@ -21,8 +21,7 @@ Noteworthy changes in version 1.1.1 (unreleased)   * New status codes GPGME_PKA_TRUST_GOOD and GPGME_PKA_TRUST_BAD.     They are analyzed by the verify handlers and made available in the -   new PKA_TRUST field of the signature result structure. - +   new PKA_TRUST and PKA_ADDRESS fields of the signature result structure.   * Interface changes relative to the 1.1.0 release:  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -32,6 +31,7 @@ gpgme_free			NEW  GPGME_STATUS_PKA_TRUST_BAD      NEW  GPGME_STATUS_PKA_TRUST_GOOD     NEW  gpgme_signature_t               EXTENDED: New field pka_trust. +gpgme_signature_t               EXTENDED: New field pka_address.  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/configure.ac b/configure.ac index a713b4d9..f8cfa0fb 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ min_automake_version="1.9.3"  # Version number: Remember to change it immediately *after* a release.  #                 Make sure to run  "svn up" before a "make dist". -AC_INIT(gpgme, 1.2.0-cvs, [[email protected]]) +AC_INIT(gpgme, 1.1.1-cvs, [[email protected]])  # LT Version numbers, remember to change them just *before* a release.  #   (Code changed:			REVISION++)  #   (Interfaces added/removed/changed:	CURRENT++, REVISION=0) diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 3ca9302d..ed7377db 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -8,11 +8,17 @@  	* w32-glib-io.c (find_channel): Set channel to unbuffered.  	(_gpgme_io_select): Fix debug output. +2005-12-23  Werner Koch  <[email protected]> + +	* gpgme.h (struct _gpgme_signature): Append field PKA_ADDRESS. +	* verify.c (release_op_data, _gpgme_verify_status_handler): Set +	this field. +  2005-12-20  Werner Koch  <[email protected]>  	* gpgme.h (gpgme_status_code_t): Added GPGME_STATUS_PKA_TRUST_BAD  	and GPGME_STATUS_PKA_TRUST_GOOD. -	(gpgme_signature_t): New field pka_trust. +	(struct _gpgme_signature): New field pka_trust.  	* verify.c (_gpgme_verify_status_handler): Set pka_trust.  2005-12-06  Werner Koch  <[email protected]> diff --git a/gpgme/gpgme.h b/gpgme/gpgme.h index 4fb41549..e0567359 100644 --- a/gpgme/gpgme.h +++ b/gpgme/gpgme.h @@ -72,7 +72,7 @@ extern "C" {     AM_PATH_GPGME macro) check that this header matches the installed     library.  Warning: Do not edit the next line.  configure will do     that for you!  */ -#define GPGME_VERSION "1.2.0-cvs" +#define GPGME_VERSION "1.1.1-cvs" @@ -1020,11 +1020,11 @@ gpgme_data_encoding_t gpgme_data_get_encoding (gpgme_data_t dh);  gpgme_error_t gpgme_data_set_encoding (gpgme_data_t dh,  				       gpgme_data_encoding_t enc); -/* Get the filename associated with the data object with handle DH, or +/* Get the file name associated with the data object with handle DH, or     NULL if there is none.  */  char *gpgme_data_get_file_name (gpgme_data_t dh); -/* Set the filename associated with the data object with handle DH to +/* Set the file name associated with the data object with handle DH to     FILE_NAME.  */  gpgme_error_t gpgme_data_set_file_name (gpgme_data_t dh,  					const char *file_name); @@ -1334,6 +1334,9 @@ struct _gpgme_signature    /* The hash algorithm used to create the signature.  */    gpgme_hash_algo_t hash_algo; + +  /* The mailbox from the PKA information or NULL. */ +  char *pka_address;  };  typedef struct _gpgme_signature *gpgme_signature_t; diff --git a/gpgme/verify.c b/gpgme/verify.c index 7792f353..8596bbc9 100644 --- a/gpgme/verify.c +++ b/gpgme/verify.c @@ -64,6 +64,8 @@ release_op_data (void *hook)        if (sig->fpr)  	free (sig->fpr); +      if (sig->pka_address) +	free (sig->pka_address);        free (sig);        sig = next;      } @@ -588,6 +590,7 @@ _gpgme_verify_status_handler (void *priv, gpgme_status_code_t code, char *args)    void *hook;    op_data_t opd;    gpgme_signature_t sig; +  char *end;    err = _gpgme_op_data_lookup (ctx, OPDATA_VERIFY, &hook, -1, NULL);    opd = hook; @@ -654,10 +657,15 @@ _gpgme_verify_status_handler (void *priv, gpgme_status_code_t code, char *args)      case GPGME_STATUS_PKA_TRUST_BAD:      case GPGME_STATUS_PKA_TRUST_GOOD:        opd->only_newsig_seen = 0; -      if (sig && !sig->pka_trust) -        sig->pka_trust = code == GPGME_STATUS_PKA_TRUST_GOOD? 2 : 1; -      /* FIXME: We should set the mailbox which is the argument to -         these status codes into a new field. */ +      /* Check that we only get one of these status codes per +         signature; if not the crypto backend misbehaves.  */ +      if (!sig || sig->pka_trust || sig->pka_address) +        return gpg_error (GPG_ERR_INV_ENGINE); +      sig->pka_trust = code == GPGME_STATUS_PKA_TRUST_GOOD? 2 : 1; +      end = strchr (args, ' '); +      if (end) +        *end = 0; +      sig->pka_address = strdup (args);        break;      case GPGME_STATUS_ERROR: | 
