Lots of random cleanups, mostly for native_theme_win.cc:
[chromium-blink-merge.git] / net / data / ssl / scripts / generate-policy-certs.sh
blob5507d5b13990b4d41af595441c45e886c2745b63
1 #!/bin/sh
3 # Copyright 2013 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
7 # This script generates a (end-entity, intermediate, root) certificate, where
8 # the root has no explicit policies associated, the intermediate has multiple
9 # policies, and the leaf has a single policy.
11 # When validating, supplying no policy OID should not result in an error.
13 try() {
14 echo "$@"
15 "$@" || exit 1
18 try rm -rf out
19 try mkdir out
21 # Create the serial number files.
22 try /bin/sh -c "echo 01 > out/policy-root-serial"
23 try /bin/sh -c "echo 01 > out/policy-intermediate-serial"
25 # Create the signers' DB files.
26 touch out/policy-root-index.txt
27 touch out/policy-intermediate-index.txt
29 # Generate the keys
30 try openssl genrsa -out out/policy-root.key 2048
31 try openssl genrsa -out out/policy-intermediate.key 2048
32 try openssl genrsa -out out/policy-cert.key 2048
34 # Generate the root certificate
35 COMMON_NAME="Policy Test Root CA" \
36 CA_DIR=out \
37 CA_NAME=policy-root \
38 try openssl req \
39 -new \
40 -key out/policy-root.key \
41 -out out/policy-root.csr \
42 -config policy.cnf
44 COMMON_NAME="Policy Test Root CA" \
45 CA_DIR=out \
46 CA_NAME=policy-root \
47 try openssl x509 \
48 -req -days 3650 \
49 -in out/policy-root.csr \
50 -out out/policy-root.pem \
51 -signkey out/policy-root.key \
52 -extfile policy.cnf \
53 -extensions ca_cert \
54 -text
56 # Generate the intermediate
57 COMMON_NAME="Policy Test Intermediate CA" \
58 CA_DIR=out \
59 try openssl req \
60 -new \
61 -key out/policy-intermediate.key \
62 -out out/policy-intermediate.csr \
63 -config policy.cnf
65 COMMON_NAME="UNUSED" \
66 CA_DIR=out \
67 CA_NAME=policy-root \
68 try openssl ca \
69 -batch \
70 -in out/policy-intermediate.csr \
71 -out out/policy-intermediate.pem \
72 -config policy.cnf \
73 -extensions intermediate_cert
75 # Generate the leaf
76 COMMON_NAME="policy_test.example" \
77 CA_DIR=out \
78 CA_NAME=policy-intermediate \
79 try openssl req \
80 -new \
81 -key out/policy-cert.key \
82 -out out/policy-cert.csr \
83 -config policy.cnf
85 COMMON_NAME="Policy Test Intermediate CA" \
86 CA_DIR=out \
87 CA_NAME=policy-intermediate \
88 try openssl ca \
89 -batch \
90 -in out/policy-cert.csr \
91 -out out/policy-cert.pem \
92 -config policy.cnf \
93 -extensions user_cert
95 try /bin/sh -c "cat out/policy-cert.pem \
96 out/policy-intermediate.pem \
97 out/policy-root.pem >../certificates/explicit-policy-chain.pem"