1#!/usr/bin/python
2# Copyright (c) 2016 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""
7A chain with four possible intermediates with different notBefore and notAfter
8dates, for testing path bulding prioritization.
9"""
10
11import sys
12sys.path += ['../..']
13
14import gencerts
15
16DATE_A = '150101120000Z'
17DATE_B = '150102120000Z'
18DATE_C = '180101120000Z'
19DATE_D = '180102120000Z'
20
21
22root = gencerts.create_self_signed_root_certificate('Root')
23root.set_validity_range(DATE_A, DATE_D)
24
25int_ac = gencerts.create_intermediate_certificate('Intermediate', root)
26int_ac.set_validity_range(DATE_A, DATE_C)
27
28int_ad = gencerts.create_intermediate_certificate('Intermediate', root)
29int_ad.set_validity_range(DATE_A, DATE_D)
30int_ad.set_key(int_ac.get_key())
31
32int_bc = gencerts.create_intermediate_certificate('Intermediate', root)
33int_bc.set_validity_range(DATE_B, DATE_C)
34int_bc.set_key(int_ac.get_key())
35
36int_bd = gencerts.create_intermediate_certificate('Intermediate', root)
37int_bd.set_validity_range(DATE_B, DATE_D)
38int_bd.set_key(int_ac.get_key())
39
40target = gencerts.create_end_entity_certificate('Target', int_ac)
41target.set_validity_range(DATE_A, DATE_D)
42
43
44gencerts.write_chain('The root', [root], out_pem='root.pem')
45gencerts.write_chain('Intermediate with validity range A..C',
46                     [int_ac], out_pem='int_ac.pem')
47gencerts.write_chain('Intermediate with validity range A..D',
48                     [int_ad], out_pem='int_ad.pem')
49gencerts.write_chain('Intermediate with validity range B..C',
50                     [int_bc], out_pem='int_bc.pem')
51gencerts.write_chain('Intermediate with validity range B..D',
52                     [int_bd], out_pem='int_bd.pem')
53gencerts.write_chain('The target', [target], out_pem='target.pem')
54
55