1#!/usr/bin/env python 2# Copyright 2016 The Chromium Authors 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# https://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15 16""" 17A chain with four possible intermediates with different notBefore and notAfter 18dates, for testing path bulding prioritization. 19""" 20 21import sys 22sys.path += ['../..'] 23 24import gencerts 25 26DATE_A = '150101120000Z' 27DATE_B = '150102120000Z' 28DATE_C = '180101120000Z' 29DATE_D = '180102120000Z' 30 31 32root = gencerts.create_self_signed_root_certificate('Root') 33root.set_validity_range(DATE_A, DATE_D) 34 35int_ac = gencerts.create_intermediate_certificate('Intermediate', root) 36int_ac.set_validity_range(DATE_A, DATE_C) 37 38int_ad = gencerts.create_intermediate_certificate('Intermediate', root) 39int_ad.set_validity_range(DATE_A, DATE_D) 40int_ad.set_key(int_ac.get_key()) 41 42int_bc = gencerts.create_intermediate_certificate('Intermediate', root) 43int_bc.set_validity_range(DATE_B, DATE_C) 44int_bc.set_key(int_ac.get_key()) 45 46int_bd = gencerts.create_intermediate_certificate('Intermediate', root) 47int_bd.set_validity_range(DATE_B, DATE_D) 48int_bd.set_key(int_ac.get_key()) 49 50target = gencerts.create_end_entity_certificate('Target', int_ac) 51target.set_validity_range(DATE_A, DATE_D) 52 53 54gencerts.write_chain('The root', [root], out_pem='root.pem') 55gencerts.write_chain('Intermediate with validity range A..C', 56 [int_ac], out_pem='int_ac.pem') 57gencerts.write_chain('Intermediate with validity range A..D', 58 [int_ad], out_pem='int_ad.pem') 59gencerts.write_chain('Intermediate with validity range B..C', 60 [int_bc], out_pem='int_bc.pem') 61gencerts.write_chain('Intermediate with validity range B..D', 62 [int_bd], out_pem='int_bd.pem') 63gencerts.write_chain('The target', [target], out_pem='target.pem') 64 65