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