From f69b145be27f04e34c076158b105c325017a4178 Mon Sep 17 00:00:00 2001 From: Thomas Roessler Date: Sat, 30 Jan 1999 16:32:34 +0000 Subject: [PATCH] Handle expired keys correclty, even when they are the only and exact match when searching for keys by address. --- pgpkey.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pgpkey.c b/pgpkey.c index 6f0f8258..b5f9dc80 100644 --- a/pgpkey.c +++ b/pgpkey.c @@ -587,10 +587,10 @@ pgp_key_t *pgp_getkeybyaddr (struct pgp_vinfo * pgp, ADDRESS *r, *p; LIST *hints = NULL; int weak = 0; - int weak_association; + int weak_association, kflags; int match; pgp_uid_t *q; - pgp_key_t *keys, *k, *kn; + pgp_key_t *keys, *k, *kn, *pk; pgp_key_t *matches = NULL; pgp_key_t **last = &matches; @@ -625,6 +625,9 @@ pgp_key_t *pgp_getkeybyaddr (struct pgp_vinfo * pgp, continue; } + pkey = pgp_principal_key (k); + kflags = k->flags | pkey->flags; + q = k->address; weak_association = 1; match = 0; @@ -644,7 +647,9 @@ pgp_key_t *pgp_getkeybyaddr (struct pgp_vinfo * pgp, match = 1; if (((q->trust & 0x03) == 3) && - (p->mailbox && a->mailbox && !mutt_strcasecmp (p->mailbox, a->mailbox))) + !(kflags & KEYFLAG_CANTUSE) && + (p->mailbox && a->mailbox && + !mutt_strcasecmp (p->mailbox, a->mailbox))) weak_association = 0; } } -- 2.40.0