diff --git a/NEWS b/NEWS index bfc4c8b7..3e660937 100644 --- a/NEWS +++ b/NEWS @@ -10,11 +10,16 @@ Noteworthy changes in version 0.4.3 (unreleased) * gpgme_signature_t's status field is now correctly set to an error with error code GPG_ERR_NO_PUBKEY if public key is not found. + * gpgme_new_signature_t's class field is now an unsigned int, rather + than an unsigned long (the old class field is preserved for + backwards compatibility). + * Interface changes relative to the 0.4.3 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gpgme_get_key CHANGED: Fails correctly if key ID not unique. gpgme_key_t EXTENDED: New field can_authenticate. gpgme_subkey_t EXTENDED: New field can_authenticate. +gpgme_new_signature_t CHANGED: New type for class field. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/ChangeLog b/doc/ChangeLog index 65c5f892..ac6f9aa4 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,8 @@ +2003-08-14 Marcus Brinkmann + + * gpgme.texi (Creating a Signature): Change type of member class + to unsigned int. + 2003-08-04 Marcus Brinkmann * gpgme.texi (Verify): Get error code from SIG->status in the code diff --git a/doc/gpgme.texi b/doc/gpgme.texi index 63765528..7dd261da 100644 --- a/doc/gpgme.texi +++ b/doc/gpgme.texi @@ -3937,7 +3937,7 @@ The public key algorithm used to create this signature. @item gpgme_hash_algo_t The hash algorithm used to create this signature. -@item unsigned long class +@item unsigned int class The signature class of this signature. @item long int timestamp diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 35172ddb..a69c048b 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,10 @@ +2003-08-14 Marcus Brinkmann + + * gpgme.h (struct _gpgme_new_signature): Rename member CLASS to + _OBSOLETE_CLASS, add member CLASS with type unsigned int. + * sign.c (parse_sig_created): Also set SIG->_unused_class for + backward compatibility. + 2003-08-04 Marcus Brinkmann * verify.c (parse_new_sig): Fix status parsing case. diff --git a/gpgme/gpgme.h b/gpgme/gpgme.h index 2320f900..ed1d25bb 100644 --- a/gpgme/gpgme.h +++ b/gpgme/gpgme.h @@ -1045,12 +1045,28 @@ gpgme_error_t gpgme_op_decrypt_verify (gpgme_ctx_t ctx, gpgme_data_t cipher, struct _gpgme_new_signature { struct _gpgme_new_signature *next; + + /* The type of the signature. */ gpgme_sig_mode_t type; + + /* The public key algorithm used to create the signature. */ gpgme_pubkey_algo_t pubkey_algo; + + /* The hash algorithm used to create the signature. */ gpgme_hash_algo_t hash_algo; - unsigned long class; + + /* Internal to GPGME, do not use. Must be set to the same value as + CLASS below. */ + unsigned long _obsolete_class; + + /* Signature creation time. */ long int timestamp; + + /* The fingerprint of the signature. */ char *fpr; + + /* Crypto backend specific signature class. */ + unsigned int class; }; typedef struct _gpgme_new_signature *gpgme_new_signature_t; diff --git a/gpgme/sign.c b/gpgme/sign.c index 0f2c4ee3..089b34c5 100644 --- a/gpgme/sign.c +++ b/gpgme/sign.c @@ -144,6 +144,7 @@ parse_sig_created (char *args, gpgme_new_signature_t *sigp) args = tail; sig->class = strtol (args, &tail, 0); + sig->_obsolete_class = sig->class; if (errno || args == tail || *tail != ' ') { /* The crypto backend does not behave. */ diff --git a/tests/ChangeLog b/tests/ChangeLog index 99a0a459..2be0e0a1 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2003-08-14 Marcus Brinkmann + + * gpg/t-sign.c (check_result): Change output format for signature + class to unsigned int. + 2003-07-31 Marcus Brinkmann * gpg/t-verify.c (check_result): Change type of SUMMARY to diff --git a/tests/gpg/t-sign.c b/tests/gpg/t-sign.c index 85b94a7e..78e590b9 100644 --- a/tests/gpg/t-sign.c +++ b/tests/gpg/t-sign.c @@ -61,7 +61,7 @@ check_result (gpgme_sign_result_t result, gpgme_sig_mode_t type) } if (result->signatures->class != 1) { - fprintf (stderr, "Wrong signature class reported: %lu\n", + fprintf (stderr, "Wrong signature class reported: %u\n", result->signatures->class); exit (1); }