------------------------------------------------
+ * Interface changes relative to the 1.1.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_signature_t EXTENDED: New field chain_model.
+
Noteworthy changes in version 1.1.5 (2007-07-09)
------------------------------------------------
+2007-08-07 Werner Koch <wk@g10code.com>
+
+ * gpgme.texi (Verify): Describe chain_model.
+
2007-07-12 Werner Koch <wk@g10code.com>
* gpgme.texi (Library Version Check): Add remark that the socket
Depending on the configuration of the engine, this metric may also be
reflected by the validity of the signature.
+@item unsigned int chain_model : 1
+This is true if the validity of the signature has been checked using the
+chain model. In the chain model the time the signature has been created
+must be within the validity period of the certificate and the time the
+certificate itself has been created must be within the validity period
+of the issuing certificate. In contrast the default validation model
+checks the validity of signature as well at the entire certificate chain
+at the current time.
+
+
@item gpgme_validity_t validity
The validity of the signature.
+2007-08-07 Werner Koch <wk@g10code.com>
+
+ * gpgme.h (struct _gpgme_signature): Add member CHAIN_MODEL.
+ * verify.c (parse_trust): Set Chain_MODEL.
+
2007-08-02 Werner Koch <wk@g10code.com>
* w32-glib-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS flag.
2007-07-17 Marcus Brinkmann <marcus@g10code.de>
- * debug.c:;5B Include <errno.h> and "debug.h".
+ * debug.c: Include <errno.h> and "debug.h".
(_gpgme_debug): Save and restore ERRNO.
(TOHEX): New macro.
(_gpgme_debug_buffer): New function.
/* gpgme.h - Public interface to GnuPG Made Easy.
Copyright (C) 2000 Werner Koch (dd9jn)
- Copyright (C) 2001, 2002, 2003, 2004, 2005 g10 Code GmbH
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007 g10 Code GmbH
This file is part of GPGME.
/* PKA status: 0 = not available, 1 = bad, 2 = okay, 3 = RFU. */
unsigned int pka_trust : 2;
+ /* Validity has been verified using the chain model. */
+ unsigned int chain_model : 1;
+
/* Internal to GPGME, do not use. */
- int _unused : 29;
+ int _unused : 28;
gpgme_validity_t validity;
gpgme_error_t validity_reason;
break;
}
+ sig->validity_reason = 0;
+ sig->chain_model = 0;
if (*args)
- sig->validity_reason = _gpgme_map_gnupg_error (args);
- else
- sig->validity_reason = 0;
+ {
+ sig->validity_reason = _gpgme_map_gnupg_error (args);
+ while (*args && *args != ' ')
+ args++;
+ if (*args)
+ {
+ while (*args == ' ')
+ args++;
+ if (!strncmp (args, "cm", 2) && (args[2] == ' ' || !args[2]))
+ sig->chain_model = 1;
+ }
+ }
return 0;
}