aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/credentials/sets/cert_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/credentials/sets/cert_cache.c')
-rw-r--r--src/charon/credentials/sets/cert_cache.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/charon/credentials/sets/cert_cache.c b/src/charon/credentials/sets/cert_cache.c
index 5c112c084..a300387bf 100644
--- a/src/charon/credentials/sets/cert_cache.c
+++ b/src/charon/credentials/sets/cert_cache.c
@@ -132,6 +132,17 @@ static bool certs_filter(cert_data_t *data, relation_t **in, certificate_t **out
certificate_t *cert;
cert = (*in)->subject;
+ if (data->key == KEY_ANY && data->id &&
+ (data->cert == CERT_ANY || data->cert == CERT_X509_CRL) &&
+ cert->get_type(cert) == CERT_X509_CRL)
+ { /* CRL lookup is done using issuer/authkeyidentifier */
+ if (cert->has_issuer(cert, data->id))
+ {
+ *out = cert;
+ return TRUE;
+ }
+ }
+
if ((data->cert == CERT_ANY || cert->get_type(cert) == data->cert) &&
(!data->id || cert->has_subject(cert, data->id)))
{