Hi, I'm trying to use indirect CRLs in my application. I cannot figure out how
to get the CRL signer's cert to be verified though. I keep getting "CRL path
validation error"
I do something like this:
cs_ctx = X509_STORE_CTX_new();
if (!cs_ctx) {
error="malloc error";
goto CERTIFICATE_VERIFY_FAILURE;
}
if(! X509_STORE_CTX_init(cs_ctx,cert_store,cert,untrusted)) {
error="error initializing cs_ctx";
goto CERTIFICATE_VERIFY_FAILURE;
}
X509_STORE_CTX_trusted_stack(cs_ctx, trusted);
if (purpose) X509_STORE_CTX_set_purpose(cs_ctx, purpose);
if (crls) X509_STORE_CTX_set0_crls(cs_ctx,crls);
verifyResult = X509_verify_cert(cs_ctx);
Where 'untrusted' is a stack of potential intermediate CA's, 'trusted' is a
stack of trusted root CA's, crls is a stack of crls, and cert_store was setup
previously.
I have tried chains like this:
RootCert-+->IndCRLSigner(crldp=http://x.y.z,issrname=IndCRLSigner)->crl
|
+->EndEntityCert(crldp=http://x.y.z,issrname=IndCRLSigner)
Crl idp == http://x.y.z<http://x.y.z/>
Thanks
Adam Rosenstein,
Red Condor