1*62c56f98SSadaf EbrahimiThis documents the X.509 CAs, certificates, and CRLS used for testing. 2*62c56f98SSadaf Ebrahimi 3*62c56f98SSadaf EbrahimiCertification authorities 4*62c56f98SSadaf Ebrahimi------------------------- 5*62c56f98SSadaf Ebrahimi 6*62c56f98SSadaf EbrahimiThere are two main CAs for use as trusted roots: 7*62c56f98SSadaf Ebrahimi- test-ca.crt aka "C=NL, O=PolarSSL, CN=PolarSSL Test CA" 8*62c56f98SSadaf Ebrahimi uses a RSA-2048 key 9*62c56f98SSadaf Ebrahimi test-ca-sha1.crt and test-ca-sha256.crt use the same key, signed with 10*62c56f98SSadaf Ebrahimi different hashes. 11*62c56f98SSadaf Ebrahimi- test-ca2*.crt aka "C=NL, O=PolarSSL, CN=Polarssl Test EC CA" 12*62c56f98SSadaf Ebrahimi uses an EC key with NIST P-384 (aka secp384r1) 13*62c56f98SSadaf Ebrahimi variants used to test the keyUsage extension 14*62c56f98SSadaf EbrahimiThe files test-ca_cat12 and test-ca_cat21 contain them concatenated both ways. 15*62c56f98SSadaf Ebrahimi 16*62c56f98SSadaf EbrahimiTwo intermediate CAs are signed by them: 17*62c56f98SSadaf Ebrahimi- test-int-ca.crt "C=NL, O=PolarSSL, CN=PolarSSL Test Intermediate CA" 18*62c56f98SSadaf Ebrahimi uses RSA-4096, signed by test-ca2 19*62c56f98SSadaf Ebrahimi - test-int-ca-exp.crt is a copy that is expired 20*62c56f98SSadaf Ebrahimi- test-int-ca2.crt "C=NL, O=PolarSSL, CN=PolarSSL Test Intermediate EC CA" 21*62c56f98SSadaf Ebrahimi uses an EC key with NIST P-384, signed by test-ca 22*62c56f98SSadaf Ebrahimi 23*62c56f98SSadaf EbrahimiA third intermediate CA is signed by test-int-ca2.crt: 24*62c56f98SSadaf Ebrahimi- test-int-ca3.crt "C=UK, O=mbed TLS, CN=mbed TLS Test intermediate CA 3" 25*62c56f98SSadaf Ebrahimi uses an EC key with NIST P-256, signed by test-int-ca2 26*62c56f98SSadaf Ebrahimi 27*62c56f98SSadaf EbrahimiFinally, other CAs for specific purposes: 28*62c56f98SSadaf Ebrahimi- enco-ca-prstr.pem: has its CN encoded as a printable string, but child cert 29*62c56f98SSadaf Ebrahimi enco-cert-utf8str.pem has its issuer's CN encoded as a UTF-8 string. 30*62c56f98SSadaf Ebrahimi- test-ca-v1.crt: v1 "CA", signs 31*62c56f98SSadaf Ebrahimi server1-v1.crt: v1 "intermediate CA", signs 32*62c56f98SSadaf Ebrahimi server2-v1*.crt: EE cert (without of with chain in same file) 33*62c56f98SSadaf Ebrahimi- keyUsage.decipherOnly.crt: has the decipherOnly keyUsage bit set 34*62c56f98SSadaf Ebrahimi 35*62c56f98SSadaf EbrahimiEnd-entity certificates 36*62c56f98SSadaf Ebrahimi----------------------- 37*62c56f98SSadaf Ebrahimi 38*62c56f98SSadaf EbrahimiShort information fields: 39*62c56f98SSadaf Ebrahimi 40*62c56f98SSadaf Ebrahimi- name or pattern 41*62c56f98SSadaf Ebrahimi- issuing CA: 1 -> test-ca.crt 42*62c56f98SSadaf Ebrahimi 2 -> test-ca2.crt 43*62c56f98SSadaf Ebrahimi I1 -> test-int-ca.crt 44*62c56f98SSadaf Ebrahimi I2 -> test-int-ca2.crt 45*62c56f98SSadaf Ebrahimi I3 -> test-int-ca3.crt 46*62c56f98SSadaf Ebrahimi O -> other 47*62c56f98SSadaf Ebrahimi- key type: R -> RSA, E -> EC 48*62c56f98SSadaf Ebrahimi- C -> there is a CRL revoking this cert (see below) 49*62c56f98SSadaf Ebrahimi- L -> CN=localhost (useful for local test servers) 50*62c56f98SSadaf Ebrahimi- P1, P2 if the file includes parent (resp. parent + grandparent) 51*62c56f98SSadaf Ebrahimi- free-form comments 52*62c56f98SSadaf Ebrahimi 53*62c56f98SSadaf EbrahimiList of certificates: 54*62c56f98SSadaf Ebrahimi 55*62c56f98SSadaf Ebrahimi- cert_example_multi*.crt: 1/O R: subjectAltName 56*62c56f98SSadaf Ebrahimi- cert_example_wildcard.crt: 1 R: wildcard in subject's CN 57*62c56f98SSadaf Ebrahimi- cert_md*.crt, cert_sha*.crt: 1 R: signature hash 58*62c56f98SSadaf Ebrahimi- cert_v1_with_ext.crt: 1 R: v1 with extensions (illegal) 59*62c56f98SSadaf Ebrahimi- cli2.crt: 2 E: basic 60*62c56f98SSadaf Ebrahimi- cli-rsa.key, cli-rsa-*.crt: RSA key used for test clients, signed by 61*62c56f98SSadaf Ebrahimi the RSA test CA. 62*62c56f98SSadaf Ebrahimi- enco-cert-utf8str.pem: see enco-ca-prstr.pem above 63*62c56f98SSadaf Ebrahimi- server1*.crt: 1* R C* P1*: misc *(server1-v1 see test-ca-v1.crt above) 64*62c56f98SSadaf Ebrahimi *CRL for: .cert_type.crt, .crt, .key_usage.crt, .v1.crt 65*62c56f98SSadaf Ebrahimi P1 only for _ca.crt 66*62c56f98SSadaf Ebrahimi- server2-v1*.crt: O R: see test-ca-v1.crt above 67*62c56f98SSadaf Ebrahimi- server2*.crt: 1 R L: misc 68*62c56f98SSadaf Ebrahimi- server3.crt: 1 E L: EC cert signed by RSA CA 69*62c56f98SSadaf Ebrahimi- server4.crt: 2 R L: RSA cert signed by EC CA 70*62c56f98SSadaf Ebrahimi- server5*.crt: 2* E L: misc *(except -selfsigned and -ss-*) 71*62c56f98SSadaf Ebrahimi -sha*: hashes 72*62c56f98SSadaf Ebrahimi .eku*: extendeKeyUsage (cli/srv = www client/server, cs = codesign, etc) 73*62c56f98SSadaf Ebrahimi .ku*: keyUsage (ds = signatures, ke/ka = key exchange/agreement) 74*62c56f98SSadaf Ebrahimi .req*: CSR, not certificate 75*62c56f98SSadaf Ebrahimi -der*: trailing bytes in der (?) 76*62c56f98SSadaf Ebrahimi -badsign.crt: S5 with corrupted signature 77*62c56f98SSadaf Ebrahimi -expired.crt: S5 with "not after" date in the past 78*62c56f98SSadaf Ebrahimi -future.crt: S5 with "not before" date in the future 79*62c56f98SSadaf Ebrahimi -non-compliant.crt: S5, RFC non-compliant 80*62c56f98SSadaf Ebrahimi (with forbidden EC algorithm identifier NULL parameter) 81*62c56f98SSadaf Ebrahimi generated by (before fix): 82*62c56f98SSadaf Ebrahimi cert_write subject_key=server5.key subject_name="CN=Test EC RFC non-compliant" issuer_crt=test-ca2.crt issuer_key=test-ca2.key 83*62c56f98SSadaf Ebrahimi -selfsigned.crt: Self-signed cert with S5 key 84*62c56f98SSadaf Ebrahimi -ss-expired.crt: Self-signed cert with S5 key, expired 85*62c56f98SSadaf Ebrahimi -ss-forgeca.crt: Copy of test-int-ca3 self-signed with S5 key 86*62c56f98SSadaf Ebrahimi- server6-ss-child.crt: O E: "child" of non-CA server5-selfsigned 87*62c56f98SSadaf Ebrahimi- server6.crt, server6.pem: 2 E L C: revoked 88*62c56f98SSadaf Ebrahimi- server7.crt: I1 E L P1(usually): EC signed by RSA signed by EC 89*62c56f98SSadaf Ebrahimi -badsign.crt: S7 with corrupted signature + I1 90*62c56f98SSadaf Ebrahimi -expired.crt: S7 with "not after" date in the past + I1 91*62c56f98SSadaf Ebrahimi -future.crt: S7 with "not before" date in the future + I1 92*62c56f98SSadaf Ebrahimi _int-ca-exp.crt: S7 + expired I1 93*62c56f98SSadaf Ebrahimi _int-ca.crt: S7 + I1 94*62c56f98SSadaf Ebrahimi _int-ca_ca2.crt: S7 + I1 + 2 95*62c56f98SSadaf Ebrahimi _all_space.crt: S7 + I1 both with misplaced spaces (invalid PEM) 96*62c56f98SSadaf Ebrahimi _pem_space.crt: S7 with misplaced space (invalid PEM) + I1 97*62c56f98SSadaf Ebrahimi _trailing_space.crt: S7 + I1 both with trailing space (valid PEM) 98*62c56f98SSadaf Ebrahimi _spurious_int-ca.crt: S7 + I2(spurious) + I1 99*62c56f98SSadaf Ebrahimi- server8*.crt: I2 R L: RSA signed by EC signed by RSA (P1 for _int-ca2) 100*62c56f98SSadaf Ebrahimi- server9*.crt: 1 R C* L P1*: signed using RSASSA-PSS 101*62c56f98SSadaf Ebrahimi *CRL for: 9.crt, -badsign, -with-ca (P1) 102*62c56f98SSadaf Ebrahimi- server10.crt: I3 E L 103*62c56f98SSadaf Ebrahimi -badsign.crt: S10 with corrupted signature 104*62c56f98SSadaf Ebrahimi -bs_int3.pem: S10-badsign + I3 105*62c56f98SSadaf Ebrahimi _int3-bs.pem: S10 + I3-badsign 106*62c56f98SSadaf Ebrahimi _int3_int-ca2.crt: S10 + I3 + I2 107*62c56f98SSadaf Ebrahimi _int3_int-ca2_ca.crt: S10 + I3 + I2 + 1 108*62c56f98SSadaf Ebrahimi _int3_spurious_int-ca2.crt: S10 + I3 + I1(spurious) + I2 109*62c56f98SSadaf Ebrahimi 110*62c56f98SSadaf EbrahimiCertificate revocation lists 111*62c56f98SSadaf Ebrahimi---------------------------- 112*62c56f98SSadaf Ebrahimi 113*62c56f98SSadaf EbrahimiSigning CA in parentheses (same meaning as certificates). 114*62c56f98SSadaf Ebrahimi 115*62c56f98SSadaf Ebrahimi- crl-ec-sha*.pem: (2) server6.crt 116*62c56f98SSadaf Ebrahimi- crl-future.pem: (2) server6.crt + unknown 117*62c56f98SSadaf Ebrahimi- crl-rsa-pss-*.pem: (1) server9{,badsign,with-ca}.crt + cert_sha384.crt + unknown 118*62c56f98SSadaf Ebrahimi- crl.pem, crl-futureRevocationDate.pem, crl_expired.pem: (1) server1{,.cert_type,.key_usage,.v1}.crt + unknown 119*62c56f98SSadaf Ebrahimi- crl_md*.pem: crl_sha*.pem: (1) same as crl.pem 120*62c56f98SSadaf Ebrahimi- crt_cat_*.pem: (1+2) concatenations in various orders: 121*62c56f98SSadaf Ebrahimi ec = crl-ec-sha256.pem, ecfut = crl-future.pem 122*62c56f98SSadaf Ebrahimi rsa = crl.pem, rsabadpem = same with pem error, rsaexp = crl_expired.pem 123*62c56f98SSadaf Ebrahimi 124*62c56f98SSadaf EbrahimiNote: crl_future would revoke server9 and cert_sha384.crt if signed by CA 1 125*62c56f98SSadaf Ebrahimi crl-rsa-pss* would revoke server6.crt if signed by CA 2 126*62c56f98SSadaf Ebrahimi 127*62c56f98SSadaf EbrahimiGeneration 128*62c56f98SSadaf Ebrahimi---------- 129*62c56f98SSadaf Ebrahimi 130*62c56f98SSadaf EbrahimiNewer test files have been generated through commands in the Makefile. The 131*62c56f98SSadaf Ebrahimiresulting files are committed to the repository so that the tests can 132*62c56f98SSadaf Ebrahimirun without having to re-do the generation and so that the output is the 133*62c56f98SSadaf Ebrahimisame for everyone (the generation process is randomized). 134*62c56f98SSadaf Ebrahimi 135*62c56f98SSadaf EbrahimiThe origin of older certificates has not been recorded. 136