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_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); } /*