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

Reply via email to