The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

crlv2.t - Make an RFC3280-compliant CRLv2

DESCRIPTION

This test walks the reader through using Crypt::OpenSSL::CA to issue a standards-compliant CRLv2.

TEST DATA

CA private key and certificate

Provided by Crypt::OpenSSL::CA::Test. See make-x509-cert.t for details.

Issuer coordinates

The issuer DN and key identifiers are taken directly from the CA certificate.

Global CRL settings

CRL dates are supported using the dual ASN.1 date format in conformance with RFC3280 sections 5.1.2.4 and 5.1.2.5.

RFC3280 section 5.1.2.1 now makes v2 for CRLs mandatory; not coincidentally, this is the default in Crypt::OpenSSL::CA. The authorityKeyIdentifier and crlNumber extensions are also mandatory. authorityKeyIdentifier MUST NOT be critical as per section 4.2.1.1, while crlNumber MUST be as per 5.1.2.1.

Just for fun, we add a freshestCRL extension as per RFC3280 section 5.2.6; the corresponding delta CRL is issued by delta-crl.t

Revoked Certificates List

In order of appearance: a CRLv1-like unadorned entry, an entry with unspecified revocation reason, an entry for a certificate that was put on hold (that is removed by the delta-CRL, see delta-crl.t), and an entry for a certificate whose key was compromised (with a compromiseTime set). Notice that the CRL entries are in no particular order.

All done

Now we just have to sign the CRL.

CHECKING THE RESULT

In order for this test to succeed, the various decorations we set up for the CRL must show up in openssl crl or dumpasn1.