+2005-04-21 Werner Koch <wk@g10code.com>
+
+ * verify.c (calc_sig_summary): Set the key revoked bit.
+
2005-04-14 Marcus Brinkmann <marcus@g10code.de>
* wait-global.c (gpgme_wait): Use LI->ctx when checking a context
* data.c (gpgme_data_rewind): Allow to rewind data_type_none.
- Copyright 2001, 2002, 2003, 2004 g10 Code GmbH
+ Copyright 2001, 2002, 2003, 2004, 2005 g10 Code GmbH
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without
calc_sig_summary (gpgme_signature_t sig)
{
unsigned long sum = 0;
-
+
+ /* Calculate the red/green flag. */
if (sig->validity == GPGME_VALIDITY_FULL
|| sig->validity == GPGME_VALIDITY_ULTIMATE)
{
else if (gpg_err_code (sig->status) == GPG_ERR_BAD_SIGNATURE)
sum |= GPGME_SIGSUM_RED;
- if (sig->validity == GPGME_VALIDITY_UNKNOWN)
- {
- if (gpg_err_code (sig->validity_reason) == GPG_ERR_CRL_TOO_OLD)
- sum |= GPGME_SIGSUM_CRL_TOO_OLD;
- }
/* FIXME: handle the case when key and message are expired. */
switch (gpg_err_code (sig->status))
break;
}
+ /* Now look at the certain reason codes. */
+ switch (gpg_err_code (sig->validity_reason))
+ {
+ case GPG_ERR_CRL_TOO_OLD:
+ if (sig->validity == GPGME_VALIDITY_UNKNOWN)
+ sum |= GPGME_SIGSUM_CRL_TOO_OLD;
+ break;
+
+ case GPG_ERR_CERT_REVOKED:
+ sum |= GPGME_SIGSUM_KEY_REVOKED;
+ break;
+
+ default:
+ break;
+ }
+
+ /* Check other flags. */
if (sig->wrong_key_usage)
sum |= GPGME_SIGSUM_BAD_POLICY;