Strange CRL verification behaviour
Christophe Nanteuil <[email protected]> Tue, 3 Feb 2009 19:12:00 +0100
| Newsgroups | gmane.comp.apache.mod-ssl.user |
|---|---|
| Message-ID | <[email protected]> |
Hello, I am a stunnel user, which implements code from mod_ssl for certificate/CRL verifications. I noticed a strange behaviour when verifying a CRL which uses the ssl_callback_SSLVerify_CRL function of mod_ssl : If the CRLfile is not a valid CRL, stunnel starts and ignores the CRLfile. Then, for any new connection, logs show "CRL: verification passed", which means that ssl_callback_SSLVerify_CRL returned TRUE. -> NOT OK, IMO. examples of wrong CRLs : a CRL issued by an unknown CA or a certificate in the PEM format. I propose the attached patch to modify behaviour of the ssl_callback_SSLVerify_CRL function, ie return false if no CRL corresponding to the issuer of each certificate of the chain is found. -- Christophe Nanteuil
ssl_mod-crl.patch
(text/x-patch, 620 B)
--- ssl_engine_kernel.c.saved 2009-02-03 18:47:51.000000000 +0100
+++ ssl_engine_kernel.c 2009-02-03 18:55:12.000000000 +0100
@@ -1615,6 +1615,7 @@
char *cp;
char *cp2;
ASN1_TIME *t;
+ BOOL good_crl = FALSE;
/*
* Unless a revocation store for CRLs was created we
@@ -1724,6 +1725,7 @@
return FALSE;
}
X509_OBJECT_free_contents(&obj);
+ good_crl = TRUE;
}
/*
@@ -1764,8 +1766,9 @@
}
}
X509_OBJECT_free_contents(&obj);
+ good_crl = TRUE;
}
- return ok;
+ return (good_crl?ok:FALSE);
}
/*