1:
2:
3:
4:
5:
6: OPENSSL_DIR=../..
7:
8: OPENSSL_CMD=$OPENSSL_DIR/apps/openssl
9:
10: OPENSSL_CNF="-config $OPENSSL_DIR/apps/openssl.cnf"
11:
12: CERTS_DIR=./Certs
13:
14: KEYS_DIR=$CERTS_DIR
15:
16:
17: COMBO_DIR=$CERTS_DIR
18:
19: CAT=/bin/cat
20:
21: RM=/bin/rm
22:
23: MKDIR=/bin/mkdir
24:
25: DAYS=1500
26: TEST_CA_CURVE=secp160r1
27: TEST_CA_FILE=secp160r1TestCA
28: TEST_CA_DN="/C=US/ST=CA/L=Mountain View/O=Sun Microsystems, Inc./OU=Sun Microsystems Laboratories/CN=Test CA (Elliptic curve secp160r1)"
29:
30: TEST_SERVER_CURVE=secp160r2
31: TEST_SERVER_FILE=secp160r2TestServer
32: TEST_SERVER_DN="/C=US/ST=CA/L=Mountain View/O=Sun Microsystems, Inc./OU=Sun Microsystems Laboratories/CN=Test Server (Elliptic curve secp160r2)"
33:
34: TEST_CLIENT_CURVE=secp160r2
35: TEST_CLIENT_FILE=secp160r2TestClient
36: TEST_CLIENT_DN="/C=US/ST=CA/L=Mountain View/O=Sun Microsystems, Inc./OU=Sun Microsystems Laboratories/CN=Test Client (Elliptic curve secp160r2)"
37:
38:
39:
40:
41:
42:
43:
44:
45: $MKDIR -p $CERTS_DIR
46: $MKDIR -p $KEYS_DIR
47: $MKDIR -p $COMBO_DIR
48:
49: echo "Generating self-signed CA certificate (on curve $TEST_CA_CURVE)"
50: echo "==============================================================="
51: $OPENSSL_CMD ecparam -name $TEST_CA_CURVE -out $TEST_CA_CURVE.pem
52:
53:
54:
55:
56:
57:
58: $OPENSSL_CMD req $OPENSSL_CNF -nodes -subj "$TEST_CA_DN" \
59: -keyout $KEYS_DIR/$TEST_CA_FILE.key.pem \
60: -newkey ec:$TEST_CA_CURVE.pem -new \
61: -out $CERTS_DIR/$TEST_CA_FILE.req.pem
62:
63:
64:
65:
66:
67: $OPENSSL_CMD x509 -req -days $DAYS \
68: -in $CERTS_DIR/$TEST_CA_FILE.req.pem \
69: -extfile $OPENSSL_DIR/apps/openssl.cnf \
70: -extensions v3_ca \
71: -signkey $KEYS_DIR/$TEST_CA_FILE.key.pem \
72: -out $CERTS_DIR/$TEST_CA_FILE.cert.pem
73:
74:
75: $OPENSSL_CMD x509 -in $CERTS_DIR/$TEST_CA_FILE.cert.pem -text
76:
77:
78: $OPENSSL_CMD x509 -in $CERTS_DIR/$TEST_CA_FILE.cert.pem -issuer -subject \
79: > $COMBO_DIR/$TEST_CA_FILE.pem
80: $CAT $KEYS_DIR/$TEST_CA_FILE.key.pem >> $COMBO_DIR/$TEST_CA_FILE.pem
81:
82:
83: $RM $CERTS_DIR/$TEST_CA_FILE.req.pem
84:
85: echo "GENERATING A TEST SERVER CERTIFICATE (on elliptic curve $TEST_SERVER_CURVE)"
86: echo "=========================================================================="
87:
88: $OPENSSL_CMD ecparam -name $TEST_SERVER_CURVE -out $TEST_SERVER_CURVE.pem
89:
90:
91:
92:
93:
94:
95:
96: $OPENSSL_CMD req $OPENSSL_CNF -nodes -subj "$TEST_SERVER_DN" \
97: -keyout $KEYS_DIR/$TEST_SERVER_FILE.key.pem \
98: -newkey ec:$TEST_SERVER_CURVE.pem -new \
99: -out $CERTS_DIR/$TEST_SERVER_FILE.req.pem
100:
101:
102:
103:
104:
105:
106:
107: $OPENSSL_CMD x509 -req -days $DAYS \
108: -in $CERTS_DIR/$TEST_SERVER_FILE.req.pem \
109: -CA $CERTS_DIR/$TEST_CA_FILE.cert.pem \
110: -CAkey $KEYS_DIR/$TEST_CA_FILE.key.pem \
111: -out $CERTS_DIR/$TEST_SERVER_FILE.cert.pem -CAcreateserial
112:
113:
114: $OPENSSL_CMD x509 -in $CERTS_DIR/$TEST_SERVER_FILE.cert.pem -text
115:
116:
117: $OPENSSL_CMD x509 -in $CERTS_DIR/$TEST_SERVER_FILE.cert.pem -issuer -subject \
118: > $COMBO_DIR/$TEST_SERVER_FILE.pem
119: $CAT $KEYS_DIR/$TEST_SERVER_FILE.key.pem >> $COMBO_DIR/$TEST_SERVER_FILE.pem
120:
121:
122: $RM $CERTS_DIR/$TEST_SERVER_FILE.req.pem
123:
124: echo "GENERATING A TEST CLIENT CERTIFICATE (on elliptic curve $TEST_CLIENT_CURVE)"
125: echo "=========================================================================="
126:
127: $OPENSSL_CMD ecparam -name $TEST_CLIENT_CURVE -out $TEST_CLIENT_CURVE.pem
128:
129:
130:
131:
132:
133:
134:
135: $OPENSSL_CMD req $OPENSSL_CNF -nodes -subj "$TEST_CLIENT_DN" \
136: -keyout $KEYS_DIR/$TEST_CLIENT_FILE.key.pem \
137: -newkey ec:$TEST_CLIENT_CURVE.pem -new \
138: -out $CERTS_DIR/$TEST_CLIENT_FILE.req.pem
139:
140:
141:
142:
143:
144:
145:
146: $OPENSSL_CMD x509 -req -days $DAYS \
147: -in $CERTS_DIR/$TEST_CLIENT_FILE.req.pem \
148: -CA $CERTS_DIR/$TEST_CA_FILE.cert.pem \
149: -CAkey $KEYS_DIR/$TEST_CA_FILE.key.pem \
150: -out $CERTS_DIR/$TEST_CLIENT_FILE.cert.pem -CAcreateserial
151:
152:
153: $OPENSSL_CMD x509 -in $CERTS_DIR/$TEST_CLIENT_FILE.cert.pem -text
154:
155:
156: $OPENSSL_CMD x509 -in $CERTS_DIR/$TEST_CLIENT_FILE.cert.pem -issuer -subject \
157: > $COMBO_DIR/$TEST_CLIENT_FILE.pem
158: $CAT $KEYS_DIR/$TEST_CLIENT_FILE.key.pem >> $COMBO_DIR/$TEST_CLIENT_FILE.pem
159:
160:
161: $RM $CERTS_DIR/$TEST_CLIENT_FILE.req.pem
162:
163:
164: