• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1This 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- lets-encrypt-dst-x3-root.pem: A chain that ends in the Lets encrypt DST X3
50  root (https://crt.sh/?id=8395). Has the same leaf as
51  lets-encrypt-isrg-x1-root.pem.
52- lets-encrypt-isrg-x1-root.pem: A chain that ends in the Lets encrypt ISRG X1
53  root (https://crt.sh/?id=9314791). Has the same leaf as
54  lets-encrypt-dst-x3-root.pem.
55
56===== Manually generated certificates
57- client.p12 : A PKCS #12 file containing a client certificate and a private
58     key created for testing.  The password is "12345".
59
60- client-nokey.p12 : A PKCS #12 file containing a client certificate (the same
61     as the one in client.p12) but no private key. The password is "12345".
62
63- client-empty-password.p12 : A PKCS #12 file containing an unencrypted client
64     certificate and a encrypted private key.  The password is the empty string,
65     encoded as two zero bytes.  (PKCS#12 passwords are encoded as
66     NUL-terminated UTF-16.)
67
68- client-null-password.p12 : A PKCS #12 file containing an unencrypted client
69     certificate and a encrypted private key.  The password is the empty string,
70     encoded as the empty byte string.
71
72- unittest.selfsigned.der : A self-signed certificate generated using private
73     key in unittest.key.bin. The common name is "unittest".
74
75- unittest.key.bin : private key stored unencrypted.
76
77- multivalue_rdn.pem : A regression test for http://crbug.com/101009. A
78     certificate with all of the AttributeTypeAndValues stored within a single
79     RelativeDistinguishedName, rather than one AVA per RDN as normally seen.
80
81- unescaped.pem : Regression test for http://crbug.com/102839. Contains
82     characters such as '=' and '"' that would normally be escaped when
83     converting a subject/issuer name to their stringized form.
84
85- websocket_cacert.pem : The testing root CA for testing WebSocket client
86     certificate authentication.
87     This file is used in SSLUITest.TestWSSClientCert.
88
89- websocket_client_cert.p12 : A PKCS #12 file containing a client certificate
90     and a private key created for WebSocket testing. The password is "".
91     This file is used in SSLUITest.TestWSSClientCert.
92
93- no_subject_common_name_cert.pem: Used to test the function that generates a
94  NSS certificate nickname for a user certificate. This certificate's Subject
95  field doesn't have a common name.
96
97- ct-test-embedded-with-uids.pem: A certificate with embedded SCT and
98  issuer/subject unique IDs. This certificate should only be used in parsing
99  tests and otherwise kept fixed. The signature, etc., are intentionally
100  invalid.
101
102- name_constrained_key.pem
103  The private key matching the public_key_hash of the kDomainsTest constraint
104  in CertVerifyProc::HasNameConstraintsViolation.
105
106===== From net/data/ssl/scripts/generate-quic-chain.sh
107- quic-chain.pem
108- quic-leaf-cert.key
109- quic-leaf-cert.key.pkcs8.pem
110- quic-root.pem
111     These certificates are used by integration tests that use QUIC.
112
113- quic-leaf-cert.key.sct
114     This isn't generated and just contains a simple text file (the contents
115     don't actually matter, just the presence of the file).
116
117===== From net/data/ssl/scripts/generate-test-certs.sh
118- expired_cert.pem
119- ok_cert.pem
120- root_ca_cert.pem
121    These certificates are the common certificates used by the Python test
122    server for simulating HTTPS connections.
123
124- intermediate_ca_cert.pem
125- ok_cert_by_intermediate.pem
126    These certificates simulate a more common chain of root (root_ca_cert.pem)
127    to intermediate (intermediate_ca_cert.pem) to leaf
128    (ok_cert_by_intermediate.pem).
129
130- wildcard_.pem
131    A certificate and private key valid for *.example.org, used in various
132    net unit tests.
133
134- test_names.pem
135    A certificate and private key valid for a number of test names. See
136    [test_names] in ee.cnf. Other names may be added as needed.
137
138- bad_validity.pem
139    A certificate and private key only valid on 0001-01-01. Windows refuses to
140    parse this certificate.
141
142- spdy_pooling.pem : Used to test the handling of spdy IP connection pooling
143
144- subjectAltName_sanity_check.pem : Used to test the handling of various types
145     within the subjectAltName extension of a certificate.
146
147- policies_sanity_check.pem : Used to test the parsing of various types of
148     certificatePolicies extension policyQualifiers.
149
150- punycodetest.pem : A test self-signed server certificate with punycode name.
151     The common name is "xn--wgv71a119e.com" (日本語.com)
152
153- sha1_2016.pem
154    Used to test the handling of SHA1 certificates expiring in 2016.
155
156- 10_year_validity.pem
157- 11_year_validity.pem
158- 39_months_after_2015_04.pem
159- 40_months_after_2015_04.pem
160- 60_months_after_2012_07.pem
161- 61_months_after_2012_07.pem
162- pre_br_validity_bad_121.pem
163- pre_br_validity_bad_2020.pem
164- pre_br_validity_ok.pem
165- start_after_expiry.pem
166    Certs to test that the maximum validity durations set by the CA/Browser
167    Forum Baseline Requirements are enforced.
168
169- may_2018.pem
170   An 825-day certificate issued on May 1, 2018, the official start of
171   enforcement requiring Certificate Transparency for new certificates. This
172   certificate does not have any embedded SCTs.
173
174- x509_verify_results.chain.pem : A simple certificate chain used to test that
175    the correctly ordered, filtered certificate chain is returned during
176    verification, regardless of the order in which the intermediate/root CA
177    certificates are provided.
178
179- ev_test.pem
180- ev_test_state_only.pem
181     Certificates for testing EV display (including regression test for
182     https://crbug.com/1069113).
183
184===== From net/data/ssl/scripts/generate-test-keys.sh
185- rsa-{768,1024,2048}-{1..3}.key
186- ec-prime256v1-{1..3}.key
187     Pre-generated keys of various types/sizes.
188     Useful for tests that generate RSA certificates with CertBuilder without
189     having to pay the cost of generating RSA keys at runtime. Multiple keys
190     of each size are provided. (EC keys are cheap to generate at runtime, but
191     having some as files simplifies test logic in cases where the test is
192     reading both RSA and EC keys from files.)
193
194===== From net/data/ssl/scripts/generate-redundant-test-chains.sh
195- redundant-validated-chain.pem
196- redundant-server-chain.pem
197- redundant-validated-chain-root.pem
198
199     Two chains, A -> B -> C -> D and A -> B -> C2 (C and C2 share the same
200     public key) to test that SSLInfo gets the reconstructed, re-ordered
201     chain instead of the chain as served. See
202     SSLClientSocketTest.VerifyReturnChainProperlyOrdered in
203     net/socket/ssl_client_socket_unittest.cc. These chains are valid until
204     26 Feb 2022 and are generated by
205     net/data/ssl/scripts/generate-redundant-test-chains.sh.
206
207===== From net/data/ssl/scripts/generate-client-certificates.sh
208- client_1.pem
209- client_1.key
210- client_1.pk8
211- client_1_ca.pem
212- client_2.pem
213- client_2.key
214- client_2.pk8
215- client_2_ca.pem
216- client_3.pem
217- client_3.key
218- client_3.pk8
219- client_3_ca.pem
220- client_4.pem
221- client_4.key
222- client_4.pk8
223- client_4_ca.pem
224- client_5.pem
225- client_5.key
226- client_5.pk8
227- client_5_ca.pem
228- client_6.pem
229- client_6.key
230- client_6.pk8
231- client_6_ca.pem
232- client_root_ca.pem
233     This is a set of files used to unit test SSL client certificate
234     authentication.
235     - client_1_ca.pem and client_2_ca.pem are the certificates of
236       two distinct signing CAs.
237     - client_1.pem and client_1.key correspond to the certificate and
238       private key for a first certificate signed by client_1_ca.pem.
239     - client_2.pem and client_2.key correspond to the certificate and
240       private key for a second certificate signed by client_2_ca.pem.
241     - each .pk8 file contains the same key as the corresponding .key file
242       as PKCS#8 PrivateKeyInfo in DER encoding.
243     - client_3.pem is nearly identical to client_2.pem, except it is used
244       to test wifi EAP-TLS authentication so it uses a different set
245       of X509v3 extensions.  Specifically it includes two Subject
246       Alternative Name fields recognized by Chrome OS.
247     - client_4.pem is similar to client_2.pem but is a P-256 ECDSA key rather
248       than RSA.
249     - client_5.pem is similar to client_2.pem but is a P-384 ECDSA key rather
250       than RSA.
251     - client_6.pem is similar to client_2.pem but is a P-521 ECDSA key rather
252       than RSA.
253     - client_root_ca.pem is the CA certificate which signed client_*_ca.pem.
254
255===== From net/data/ssl/scripts/generate-bad-eku-certs.sh
256- eku-test-root.pem
257- non-crit-codeSigning-chain.pem
258- crit-codeSigning-chain.pem
259     Two code-signing certificates (eKU: codeSigning; eKU: critical,
260     codeSigning) which we use to test that clients are making sure that web
261     server certs are checked for correct eKU fields (when an eKU field is
262     present). Since codeSigning is not valid for web server auth, the checks
263     should fail.
264
265===== From net/data/ssl/scripts/generate-multi-root-test-chains.sh
266- multi-root-chain1.pem
267- multi-root-chain2.pem
268     Two chains, A -> B -> C -> D and A -> B -> C2 -> E (C and C2 share the
269     same public key) to test that certificate validation caching does not
270     interfere with the chain_verify_callback used by CertVerifyProcChromeOS.
271     See CertVerifyProcChromeOSTest.
272
273===== From net/data/ssl/scripts/generate-multi-root-keychain.sh
274- multi-root.keychain: An OSX Keychain containing the generated
275  certificates multi-root-*-by-*.pem
276
277===== From net/data/ssl/scripts/generate-duplicate-cn-certs.sh
278- duplicate_cn_1.p12
279- duplicate_cn_1.pem
280- duplicate_cn_2.p12
281- duplicate_cn_2.pem
282     Two certificates from the same issuer that share the same common name,
283     but have distinct subject names (namely, their O fields differ). NSS
284     requires that certificates have unique nicknames if they do not share the
285     same subject, and these certificates are used to test that the nickname
286     generation algorithm generates unique nicknames.
287     The .pem versions contain just the certs, while the .p12 versions contain
288     both the cert and a private key, since there are multiple ways to import
289     certificates into NSS.
290
291===== From net/data/ssl/scripts/generate-self-signed-certs.sh
292- self-signed-invalid-name.pem
293- self-signed-invalid-sig.pem
294     Two "self-signed" certificates with mismatched names or an invalid
295     signature, respectively.
296
297===== From net/data/ssl/scripts/generate-key-usage-certs.sh
298- key_usage_rsa_no_extension.pem
299- key_usage_rsa_keyencipherment.pem
300- key_usage_rsa_digitalsignature.pem
301- key_usage_rsa_both.pem
302     Self-signed RSA certificates with various combinations of keyUsage
303     flags. Their private key is key_usage_rsa.key.
304
305- key_usage_p256_no_extension.pem
306- key_usage_p256_keyagreement.pem
307- key_usage_p256_digitalsignature.pem
308- key_usage_p256_both.pem
309     Self-signed P-256 certificates with various combinations of keyUsage
310     flags. Their private key is key_usage_p256.key.
311