blob: c56b7e18fff242a2e9acf82ac7d70112881eda87 [file] [log] [blame]
Bob Beckbc97b7a2023-04-18 08:35:15 -06001This directory contains various certificates for use with SSL-related
2unit tests.
3
4===== Real-world certificates that need manual updating
5- google.binary.p7b
6- google.chain.pem
7- google.pem_cert.p7b
8- google.pem_pkcs7.p7b
9- google.pkcs7.p7b
10- google.single.der
11- google.single.pem : Certificates for testing parsing of different formats.
12
13- mit.davidben.der : An expired MIT client certificate.
14
15- foaf.me.chromium-test-cert.der : A client certificate for a FOAF.ME identity
16 created for testing.
17
18- google_diginotar.pem
19- diginotar_public_ca_2025.pem : A certificate chain for the regression test
20 of http://crbug.com/94673
21
22- salesforce_com_test.pem
23- verisign_intermediate_ca_2011.pem
24- verisign_intermediate_ca_2016.pem : Certificates for testing two
25 X509Certificate objects that contain the same server certificate but
26 different intermediate CA certificates. The two intermediate CA
27 certificates actually represent the same intermediate CA but have
28 different validity periods.
29
30- ndn.ca.crt: "New Dream Network Certificate Authority" root certificate.
31 This is an X.509 v1 certificate that omits the version field. Used to
32 test that the certificate version gets the default value v1.
33
34- ct-test-embedded-cert.pem
35- ct-test-embedded-with-intermediate-chain.pem
36- ct-test-embedded-with-intermediate-preca-chain.pem
37- ct-test-embedded-with-preca-chain.pem
38 Test certificate chains for Certificate Transparency: Each of these
39 files contains a leaf certificate as the first certificate, which has
40 embedded SCTs, followed by the issuer certificates chain.
41 All files are from the src/test/testdada directory in
42 https://code.google.com/p/certificate-transparency/
43
44- leaf_from_known_root.pem : A certificate issued by a public trust anchor,
45 used for CertVerifyProcInternalTest.TestKnownRoot. Using for other
46 purposes is not recommended. This needs to be updated periodically so the
47 server name the cert is valid for may change.
48
49- treadclimber.pem: A chain where the leaf does not contain embedded SCTs,
50 and which has a notBefore date after 2018/10/15. Expires 2020/02/07.
51- treadclimber.sctlist: The TLS encoded SignedCertificateTimestampList for the
52 treadclimber.pem leaf certificate.
53- lets-encrypt-dst-x3-root.pem: A chain that ends in the Lets encrypt DST X3
54 root (https://crt.sh/?id=8395). Has the same leaf as
55 lets-encrypt-isrg-x1-root.pem.
56- lets-encrypt-isrg-x1-root.pem: A chain that ends in the Lets encrypt ISRG X1
57 root (https://crt.sh/?id=9314791). Has the same leaf as
58 lets-encrypt-dst-x3-root.pem.
59
60===== Manually generated certificates
61- client.p12 : A PKCS #12 file containing a client certificate and a private
62 key created for testing. The password is "12345".
63
64- client-nokey.p12 : A PKCS #12 file containing a client certificate (the same
65 as the one in client.p12) but no private key. The password is "12345".
66
67- client-empty-password.p12 : A PKCS #12 file containing an unencrypted client
68 certificate and a encrypted private key. The password is the empty string,
69 encoded as two zero bytes. (PKCS#12 passwords are encoded as
70 NUL-terminated UTF-16.)
71
72- client-null-password.p12 : A PKCS #12 file containing an unencrypted client
73 certificate and a encrypted private key. The password is the empty string,
74 encoded as the empty byte string.
75
76- unittest.selfsigned.der : A self-signed certificate generated using private
77 key in unittest.key.bin. The common name is "unittest".
78
79- unittest.key.bin : private key stored unencrypted.
80
81- multivalue_rdn.pem : A regression test for http://crbug.com/101009. A
82 certificate with all of the AttributeTypeAndValues stored within a single
83 RelativeDistinguishedName, rather than one AVA per RDN as normally seen.
84
85- unescaped.pem : Regression test for http://crbug.com/102839. Contains
86 characters such as '=' and '"' that would normally be escaped when
87 converting a subject/issuer name to their stringized form.
88
89- websocket_cacert.pem : The testing root CA for testing WebSocket client
90 certificate authentication.
91 This file is used in SSLUITest.TestWSSClientCert.
92
93- websocket_client_cert.p12 : A PKCS #12 file containing a client certificate
94 and a private key created for WebSocket testing. The password is "".
95 This file is used in SSLUITest.TestWSSClientCert.
96
97- no_subject_common_name_cert.pem: Used to test the function that generates a
98 NSS certificate nickname for a user certificate. This certificate's Subject
99 field doesn't have a common name.
100
101- ct-test-embedded-with-uids.pem: A certificate with embedded SCT and
102 issuer/subject unique IDs. This certificate should only be used in parsing
103 tests and otherwise kept fixed. The signature, etc., are intentionally
104 invalid.
105
106- name_constrained_key.pem
107 The private key matching the public_key_hash of the kDomainsTest constraint
108 in CertVerifyProc::HasNameConstraintsViolation.
109
110===== From net/data/ssl/scripts/generate-quic-chain.sh
111- quic-chain.pem
112- quic-leaf-cert.key
113- quic-leaf-cert.key.pkcs8.pem
114- quic-root.pem
115 These certificates are used by integration tests that use QUIC.
116
117- quic-leaf-cert.key.sct
118 This isn't generated and just contains a simple text file (the contents
119 don't actually matter, just the presence of the file).
120
121===== From net/data/ssl/scripts/generate-test-certs.sh
122- expired_cert.pem
123- ok_cert.pem
124- root_ca_cert.pem
125 These certificates are the common certificates used by the Python test
126 server for simulating HTTPS connections.
127
128- intermediate_ca_cert.pem
129- ok_cert_by_intermediate.pem
130 These certificates simulate a more common chain of root (root_ca_cert.pem)
131 to intermediate (intermediate_ca_cert.pem) to leaf
132 (ok_cert_by_intermediate.pem).
133
134- wildcard_.pem
135 A certificate and private key valid for *.example.org, used in various
136 net unit tests.
137
138- test_names.pem
139 A certificate and private key valid for a number of test names. See
140 [test_names] in ee.cnf. Other names may be added as needed.
141
142- bad_validity.pem
143 A certificate and private key only valid on 0001-01-01. Windows refuses to
144 parse this certificate.
145
146- spdy_pooling.pem : Used to test the handling of spdy IP connection pooling
147
148- subjectAltName_sanity_check.pem : Used to test the handling of various types
149 within the subjectAltName extension of a certificate.
150
151- policies_sanity_check.pem : Used to test the parsing of various types of
152 certificatePolicies extension policyQualifiers.
153
154- punycodetest.pem : A test self-signed server certificate with punycode name.
155 The common name is "xn--wgv71a119e.com" (日本語.com)
156
157- sha1_2016.pem
158 Used to test the handling of SHA1 certificates expiring in 2016.
159
160- 10_year_validity.pem
161- 11_year_validity.pem
162- 39_months_after_2015_04.pem
163- 40_months_after_2015_04.pem
164- 60_months_after_2012_07.pem
165- 61_months_after_2012_07.pem
166- pre_br_validity_bad_121.pem
167- pre_br_validity_bad_2020.pem
168- pre_br_validity_ok.pem
169- start_after_expiry.pem
170 Certs to test that the maximum validity durations set by the CA/Browser
171 Forum Baseline Requirements are enforced.
172
173- pre_june_2016.pem
174- post_june_2016.pem
175- dec_2017.pem
176 Certs to test that policies related to enforcing CT on Symantec are
177 properly gated on the issuance date. See
178 https://g.co/chrome/symantecpkicerts. (Note, however, that the leaf and
179 root do not actually form a chain.)
180
181- may_2018.pem
182 An 825-day certificate issued on May 1, 2018, the official start of
183 enforcement requiring Certificate Transparency for new certificates. This
184 certificate does not have any embedded SCTs.
185
186- x509_verify_results.chain.pem : A simple certificate chain used to test that
187 the correctly ordered, filtered certificate chain is returned during
188 verification, regardless of the order in which the intermediate/root CA
189 certificates are provided.
190
191- ev_test.pem
192- ev_test_state_only.pem
193 Certificates for testing EV display (including regression test for
194 https://crbug.com/1069113).
195
196===== From net/data/ssl/scripts/generate-weak-test-chains.sh
197- 2048-rsa-root.pem
198- {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-intermediate.pem
199- {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-ee-by-
200 {768-rsa,1024-rsa,2048-rsa,prime256v1-ecdsa}-intermediate.pem
201 Test certificates used to ensure that weak keys are detected and rejected
202
203===== From net/data/ssl/scripts/generate-cross-signed-certs.sh
204- cross-signed-leaf.pem
205- cross-signed-root-md5.pem
206- cross-signed-root-sha256.pem
207 A certificate chain for regression testing http://crbug.com/108514
208
209===== From net/data/ssl/scripts/generate-redundant-test-chains.sh
210- redundant-validated-chain.pem
211- redundant-server-chain.pem
212- redundant-validated-chain-root.pem
213
214 Two chains, A -> B -> C -> D and A -> B -> C2 (C and C2 share the same
215 public key) to test that SSLInfo gets the reconstructed, re-ordered
216 chain instead of the chain as served. See
217 SSLClientSocketTest.VerifyReturnChainProperlyOrdered in
218 net/socket/ssl_client_socket_unittest.cc. These chains are valid until
219 26 Feb 2022 and are generated by
220 net/data/ssl/scripts/generate-redundant-test-chains.sh.
221
222===== From net/data/ssl/scripts/generate-client-certificates.sh
223- client_1.pem
224- client_1.key
225- client_1.pk8
226- client_1_ca.pem
227- client_2.pem
228- client_2.key
229- client_2.pk8
230- client_2_ca.pem
231- client_3.pem
232- client_3.key
233- client_3.pk8
234- client_3_ca.pem
235- client_4.pem
236- client_4.key
237- client_4.pk8
238- client_4_ca.pem
239- client_5.pem
240- client_5.key
241- client_5.pk8
242- client_5_ca.pem
243- client_6.pem
244- client_6.key
245- client_6.pk8
246- client_6_ca.pem
247- client_root_ca.pem
248 This is a set of files used to unit test SSL client certificate
249 authentication.
250 - client_1_ca.pem and client_2_ca.pem are the certificates of
251 two distinct signing CAs.
252 - client_1.pem and client_1.key correspond to the certificate and
253 private key for a first certificate signed by client_1_ca.pem.
254 - client_2.pem and client_2.key correspond to the certificate and
255 private key for a second certificate signed by client_2_ca.pem.
256 - each .pk8 file contains the same key as the corresponding .key file
257 as PKCS#8 PrivateKeyInfo in DER encoding.
258 - client_3.pem is nearly identical to client_2.pem, except it is used
259 to test wifi EAP-TLS authentication so it uses a different set
260 of X509v3 extensions. Specifically it includes two Subject
261 Alternative Name fields recognized by Chrome OS.
262 - client_4.pem is similar to client_2.pem but is a P-256 ECDSA key rather
263 than RSA.
264 - client_5.pem is similar to client_2.pem but is a P-384 ECDSA key rather
265 than RSA.
266 - client_6.pem is similar to client_2.pem but is a P-521 ECDSA key rather
267 than RSA.
268 - client_root_ca.pem is the CA certificate which signed client_*_ca.pem.
269
270===== From net/data/ssl/scripts/generate-bad-eku-certs.sh
271- eku-test-root.pem
272- non-crit-codeSigning-chain.pem
273- crit-codeSigning-chain.pem
274 Two code-signing certificates (eKU: codeSigning; eKU: critical,
275 codeSigning) which we use to test that clients are making sure that web
276 server certs are checked for correct eKU fields (when an eKU field is
277 present). Since codeSigning is not valid for web server auth, the checks
278 should fail.
279
280===== From net/data/ssl/scripts/generate-multi-root-test-chains.sh
281- multi-root-chain1.pem
282- multi-root-chain2.pem
283 Two chains, A -> B -> C -> D and A -> B -> C2 -> E (C and C2 share the
284 same public key) to test that certificate validation caching does not
285 interfere with the chain_verify_callback used by CertVerifyProcChromeOS.
286 See CertVerifyProcChromeOSTest.
287
288===== From net/data/ssl/scripts/generate-multi-root-keychain.sh
289- multi-root.keychain: An OSX Keychain containing the generated
290 certificates multi-root-*-by-*.pem
291
292===== From net/data/ssl/scripts/generate-duplicate-cn-certs.sh
293- duplicate_cn_1.p12
294- duplicate_cn_1.pem
295- duplicate_cn_2.p12
296- duplicate_cn_2.pem
297 Two certificates from the same issuer that share the same common name,
298 but have distinct subject names (namely, their O fields differ). NSS
299 requires that certificates have unique nicknames if they do not share the
300 same subject, and these certificates are used to test that the nickname
301 generation algorithm generates unique nicknames.
302 The .pem versions contain just the certs, while the .p12 versions contain
303 both the cert and a private key, since there are multiple ways to import
304 certificates into NSS.
305
306===== From net/data/ssl/scripts/generate-self-signed-certs.sh
307- self-signed-invalid-name.pem
308- self-signed-invalid-sig.pem
309 Two "self-signed" certificates with mismatched names or an invalid
310 signature, respectively.
311
312===== From net/data/ssl/scripts/generate-key-usage-certs.sh
313- key_usage_rsa_no_extension.pem
314- key_usage_rsa_keyencipherment.pem
315- key_usage_rsa_digitalsignature.pem
316- key_usage_rsa_both.pem
317 Self-signed RSA certificates with various combinations of keyUsage
318 flags. Their private key is key_usage_rsa.key.
319
320- key_usage_p256_no_extension.pem
321- key_usage_p256_keyagreement.pem
322- key_usage_p256_digitalsignature.pem
323- key_usage_p256_both.pem
324 Self-signed P-256 certificates with various combinations of keyUsage
325 flags. Their private key is key_usage_p256.key.