• 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- 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.
326