| #!/usr/bin/env python |
| # Copyright 2016 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Certificates for testing issuer lookup. |
| |
| Root |
| /| | |\\ |
| / | | | \\ |
| / | | | \\ |
| / | | | \\ |
| / | | | \\ |
| v v v v v |
| I1_1 i1_2 I2 I3_1 I3_2 |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| v v v | | |
| C1 C2 D E1 E2 |
| |
| I1 (i1_1.pem) and i1 (i1_2.pem) have subjects that are equal after |
| normalization. |
| |
| I3_1 and I3_2 have subjects that are exactly equal. |
| |
| C1 and C2 should (attempt to) chain up through both I1 and i1, since I1 and i1 |
| have the same the name (after normalization). |
| |
| E1 and E3 should (attempt to) chain up through both I3 intermediates. |
| """ |
| |
| import os |
| import sys |
| sys.path += ['..'] |
| |
| import gencerts |
| |
| |
| def write_cert_to_file(cert, filename): |
| gencerts.write_string_to_file( |
| "Generated by %s.\n" |
| "Refer to generator script docstring for details.\n%s" % ( |
| sys.argv[0], cert.get_cert_pem()), |
| filename) |
| |
| |
| # Self-signed root certificate |
| root = gencerts.create_self_signed_root_certificate('Root') |
| write_cert_to_file(root, 'root.pem') |
| |
| |
| # Intermediate certificates |
| i1_1 = gencerts.create_intermediate_certificate('I1', root) |
| write_cert_to_file(i1_1, 'i1_1.pem') |
| |
| # same name (after normalization), different key |
| i1_2 = gencerts.create_intermediate_certificate('i1', root) |
| write_cert_to_file(i1_2, 'i1_2.pem') |
| |
| # different name |
| i2 = gencerts.create_intermediate_certificate('I2', root) |
| write_cert_to_file(i2, 'i2.pem') |
| |
| # Two intermediates with exactly the same name. |
| i3_1 = gencerts.create_intermediate_certificate('I3', root) |
| write_cert_to_file(i3_1, 'i3_1.pem') |
| i3_2 = gencerts.create_intermediate_certificate('I3', root) |
| write_cert_to_file(i3_2, 'i3_2.pem') |
| |
| # target certs |
| |
| c1 = gencerts.create_end_entity_certificate('C1', i1_1) |
| write_cert_to_file(c1, 'c1.pem') |
| |
| c2 = gencerts.create_end_entity_certificate('C2', i1_2) |
| write_cert_to_file(c2, 'c2.pem') |
| |
| d = gencerts.create_end_entity_certificate('D', i2) |
| write_cert_to_file(d, 'd.pem') |
| |
| e1 = gencerts.create_end_entity_certificate('E1', i3_1) |
| write_cert_to_file(e1, 'e1.pem') |
| |
| e2 = gencerts.create_end_entity_certificate('E2', i3_2) |
| write_cert_to_file(e2, 'e2.pem') |
| |