]> git.saurik.com Git - apple/security.git/blame - OSX/libsecurity_ssl/regressions/CreateCerts.sh
Security-57337.20.44.tar.gz
[apple/security.git] / OSX / libsecurity_ssl / regressions / CreateCerts.sh
CommitLineData
5c19dc3a
A
1#!/bin/sh -e
2
3# CreateCerts.sh
4# Security
5#
6# Copyright 2011,2015 Apple, Inc. All rights reserved.
7
8# This script may require modern version of openssl
9
10echo "Create Certs"
11
12#Overrride which openssl to use:
13#OPENSSL=/opt/openssl/bin/openssl
14OPENSSL=openssl
15
16DIR=test-certs
17
18
19mkdir -p $DIR
20cd $DIR
21
22gen_config()
23{
24 cat >ext.conf << _EOF_
25 basicConstraints = CA:FALSE
26_EOF_
27}
28
29gen_rsa_cert()
30{
31 ${OPENSSL} req -x509 -days 14600 -nodes -subj "$2" -newkey rsa:2048 -keyout $1.Key.pem -out $1.Cert.pem
32 ${OPENSSL} rsa -outform DER -in $1.Key.pem -out $1.Key.der
33 ${OPENSSL} x509 -outform DER -in $1.Cert.pem -out $1.Cert.der
34 xxd -i $1.Key.der > $1_Key.h
35 xxd -i $1.Cert.der > $1_Cert.h
36}
37
38gen_ec_cert()
39{
40 ${OPENSSL} req -x509 -days 14600 -nodes -subj "$2" -newkey ec:ecparam.pem -keyout $1.Key.pem -out $1.Cert.pem
41 ${OPENSSL} ec -outform DER -in $1.Key.pem -out $1.Key.der
42 ${OPENSSL} x509 -outform DER -in $1.Cert.pem -out $1.Cert.der
43 xxd -i $1.Key.der > $1_Key.h
44 xxd -i $1.Cert.der > $1_Cert.h
45}
46
47
48create_rsa_key()
49{
50 ${OPENSSL} req -new -nodes -subj "$2" -newkey rsa:1024 -keyout $1.Key.pem -out $1.Req.pem
51 ${OPENSSL} rsa -outform DER -in $1.Key.pem -out $1.Key.der
52 xxd -i $1.Key.der > $1_Key.h
53}
54
55create_ec_key()
56{
57 ${OPENSSL} req -new -nodes -subj "$2" -newkey ec:ecparam.pem -keyout $1.Key.pem -out $1.Req.pem
58 ${OPENSSL} ec -outform DER -in $1.Key.pem -out $1.Key.der
59 xxd -i $1.Key.der > $1_Key.h
60}
61
62sign_cert()
63{
64 ${OPENSSL} x509 -days 14600 -req -in $1.Req.pem -CA $2.Cert.pem -CAkey $2.Key.pem -set_serial $3 -out $1.Cert.$2.pem -extfile ext.conf
65 ${OPENSSL} x509 -outform DER -in $1.Cert.$2.pem -out $1.Cert.$2.der
66 xxd -i $1.Cert.$2.der > $1_Cert_$2.h
67}
68
69#generate openssl config file
70gen_config
71
72#generate EC params
73${OPENSSL} ecparam -name prime256v1 -out ecparam.pem
74
75echo "**** Generating CA keys and certs..."
76# generate CA certs
77gen_rsa_cert CA-RSA '/CN=SecurityTest CA Cert (RSA)'
78gen_rsa_cert Untrusted-CA-RSA '/CN=SecurityTest CA Cert (RSA)'
79gen_ec_cert CA-ECC '/CN=SecurityTest CA Cert (ECC)'
80
81echo "**** Generating Server keys and csr..."
82# generate Server keys and CSR
83create_rsa_key ServerRSA '/OU=SecurityTests Server Cert (RSA)/CN=localhost'
84create_ec_key ServerECC '/OU=SecurityTests Server Cert (ECC)/CN=localhost'
85
86echo "**** Generating Client keys and csr..."
87# generate client certs
88create_rsa_key ClientRSA '/OU=SecurityTests Client Cert (RSA)/CN=localhost'
89create_ec_key ClientECC '/OU=SecurityTests Client Cert (ECC)/CN=localhost'
90create_rsa_key UntrustedClientRSA '/OU=SecurityTests Client Cert (RSA)(Untrusted)/CN=localhost'
91
92echo "**** Signing Servers certs..."
93sign_cert ServerRSA CA-RSA 1
94sign_cert ServerRSA CA-ECC 2
95sign_cert ServerECC CA-RSA 3
96sign_cert ServerECC CA-ECC 4
97
98echo "**** Signing Clients certs..."
99sign_cert ClientRSA CA-RSA 1001
100sign_cert ClientRSA CA-ECC 1002
101sign_cert ClientECC CA-RSA 1003
102sign_cert ClientECC CA-ECC 1004
103
104sign_cert UntrustedClientRSA Untrusted-CA-RSA 9999
105