Annotation of embedaddon/strongswan/testing/scripts/build-certs-chroot, revision 1.1.1.1
1.1 misho 1: #!/bin/bash
2:
3: set -o errexit
4:
5: echo "Building certificates"
6:
7: # Disable leak detective when using pki as it produces warnings in tzset
8: export LEAK_DETECTIVE_DISABLE=1
9:
10: # Determine testing directory
11: DIR="$(dirname `readlink -f $0`)/.."
12:
13: # Define some global variables
14: PROJECT="strongSwan Project"
15: CA_DIR="${DIR}/hosts/winnetou/etc/ca"
16: CA_KEY="${CA_DIR}/strongswanKey.pem"
17: CA_CERT="${CA_DIR}/strongswanCert.pem"
18: CA_CERT_DER="${CA_DIR}/strongswanCert.der"
19: CA_CRL="${CA_DIR}/strongswan.crl"
20: CA_LAST_CRL="${CA_DIR}/strongswan_last.crl"
21: CA_CDP="http://crl.strongswan.org/strongswan.crl"
22: CA_BASE_CDP="http://crl.strongswan.org/strongswan_base.crl"
23: CA_OCSP="http://ocsp.strongswan.org:8880"
24: #
25: START=`date -d "-2 day" "+%d.%m.%y %T"`
26: SH_END=`date -d "-1 day" "+%d.%m.%y %T"` # 1 day
27: CA_END=`date -d "+3651 day" "+%d.%m.%y %T"` # 10 years
28: IM_END=`date -d "+3286 day" "+%d.%m.%y %T"` # 9 years
29: EE_END=`date -d "+2920 day" "+%d.%m.%y %T"` # 8 years
30: SH_EXP=`date -d "-1 day" "+%y%m%d%H%M%SZ"` # 1 day
31: IM_EXP=`date -d "+3286 day" "+%y%m%d%H%M%SZ"` # 9 years
32: EE_EXP=`date -d "+2920 day" "+%y%m%d%H%M%SZ"` # 8 years
33: NOW=`date "+%y%m%d%H%M%SZ"`
34: #
35: RESEARCH_DIR="${CA_DIR}/research"
36: RESEARCH_KEY="${RESEARCH_DIR}/researchKey.pem"
37: RESEARCH_CERT="${RESEARCH_DIR}/researchCert.pem"
38: RESEARCH_CERT_DER="${RESEARCH_DIR}/researchCert.der"
39: RESEARCH_CDP="http://crl.strongswan.org/research.crl"
40: #
41: SALES_DIR="${CA_DIR}/sales"
42: SALES_KEY="${SALES_DIR}/salesKey.pem"
43: SALES_CERT="${SALES_DIR}/salesCert.pem"
44: SALES_CERT_DER="${SALES_DIR}/salesCert.der"
45: SALES_CDP="http://crl.strongswan.org/sales.crl"
46: #
47: DUCK_DIR="${CA_DIR}/duck"
48: DUCK_KEY="${DUCK_DIR}/duckKey.pem"
49: DUCK_CERT="${DUCK_DIR}/duckCert.pem"
50: #
51: ECDSA_DIR="${CA_DIR}/ecdsa"
52: ECDSA_KEY="${ECDSA_DIR}/strongswanKey.pem"
53: ECDSA_CERT="${ECDSA_DIR}/strongswanCert.pem"
54: ECDSA_CDP="http://crl.strongswan.org/strongswan_ecdsa.crl"
55: #
56: RFC3779_DIR="${CA_DIR}/rfc3779"
57: RFC3779_KEY="${RFC3779_DIR}/strongswanKey.pem"
58: RFC3779_CERT="${RFC3779_DIR}/strongswanCert.pem"
59: RFC3779_CDP="http://crl.strongswan.org/strongswan_rfc3779.crl"
60: #
61: SHA3_RSA_DIR="${CA_DIR}/sha3-rsa"
62: SHA3_RSA_KEY="${SHA3_RSA_DIR}/strongswanKey.pem"
63: SHA3_RSA_CERT="${SHA3_RSA_DIR}/strongswanCert.pem"
64: SHA3_RSA_CDP="http://crl.strongswan.org/strongswan_sha3_rsa.crl"
65: #
66: ED25519_DIR="${CA_DIR}/ed25519"
67: ED25519_KEY="${ED25519_DIR}/strongswanKey.pem"
68: ED25519_CERT="${ED25519_DIR}/strongswanCert.pem"
69: ED25519_CDP="http://crl.strongswan.org/strongswan_ed25519.crl"
70: #
71: MONSTER_DIR="${CA_DIR}/monster"
72: MONSTER_KEY="${MONSTER_DIR}/strongswanKey.pem"
73: MONSTER_CERT="${MONSTER_DIR}/strongswanCert.pem"
74: MONSTER_CDP="http://crl.strongswan.org/strongswan_monster.crl"
75: MONSTER_CA_RSA_SIZE="8192"
76: MONSTER_EE_RSA_SIZE="4096"
77: #
78: BLISS_DIR="${CA_DIR}/bliss"
79: BLISS_KEY="${BLISS_DIR}/strongswan_blissKey.der"
80: BLISS_CERT="${BLISS_DIR}/strongswan_blissCert.der"
81: BLISS_CDP="http://crl.strongswan.org/strongswan_bliss.crl"
82: #
83: RSA_SIZE="3072"
84: IPSEC_DIR="etc/ipsec.d"
85: SWANCTL_DIR="etc/swanctl"
86: TKM_DIR="etc/tkm"
87: HOSTS="carol dave moon sun alice venus bob"
88: TEST_DIR="${DIR}/tests"
89:
90: # Create directories
91: mkdir -p ${CA_DIR}/certs
92: mkdir -p ${CA_DIR}/keys
93: mkdir -p ${RESEARCH_DIR}/certs
94: mkdir -p ${RESEARCH_DIR}/keys
95: mkdir -p ${SALES_DIR}/certs
96: mkdir -p ${SALES_DIR}/keys
97: mkdir -p ${DUCK_DIR}/certs
98: mkdir -p ${ECDSA_DIR}/certs
99: mkdir -p ${RFC3779_DIR}/certs
100: mkdir -p ${SHA3_RSA_DIR}/certs
101: mkdir -p ${ED25519_DIR}/certs
102: mkdir -p ${MONSTER_DIR}/certs
103: mkdir -p ${BLISS_DIR}/certs
104:
105: ################################################################################
106: # strongSwan Root CA #
107: ################################################################################
108:
109: # Generate strongSwan Root CA
110: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${CA_KEY}
111: pki --self --type rsa --in ${CA_KEY} --not-before "${START}" --not-after "${CA_END}" \
112: --ca --pathlen 1 --dn "C=CH, O=${PROJECT}, CN=strongSwan Root CA" \
113: --outform pem > ${CA_CERT}
114:
115: # Distribute strongSwan Root CA certificate
116: for h in ${HOSTS}
117: do
118: HOST_DIR="${DIR}/hosts/${h}"
119: mkdir -p ${HOST_DIR}/${IPSEC_DIR}/cacerts
120: mkdir -p ${HOST_DIR}/${SWANCTL_DIR}/x509ca
121: cp ${CA_CERT} ${HOST_DIR}/${IPSEC_DIR}/cacerts
122: cp ${CA_CERT} ${HOST_DIR}/${SWANCTL_DIR}/x509ca
123: done
124:
125: # Put a copy onto the alice FreeRADIUS server
126: mkdir -p ${DIR}/hosts/alice/etc/raddb/certs
127: cp ${CA_CERT} ${DIR}/hosts/alice/etc/raddb/certs
128:
129: # Convert strongSwan Root CA certificate into DER format
130: openssl x509 -in ${CA_CERT} -outform der -out ${CA_CERT_DER}
131:
132: # Generate a stale CRL
133: pki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} \
134: --this-update "${START}" --lifetime 1 > ${CA_LAST_CRL}
135:
136: # Put a CRL copy into the ikev2/crl-ldap scenario to be used as a stale crl
137: TEST="${TEST_DIR}/ikev2/crl-ldap"
138: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/crls
139: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/crls
140: cp ${CA_LAST_CRL} ${TEST}/hosts/carol/${IPSEC_DIR}/crls/stale.crl
141: cp ${CA_LAST_CRL} ${TEST}/hosts/moon/${IPSEC_DIR}/crls/stale.crl
142:
143: # Generate host keys
144: for h in ${HOSTS}
145: do
146: HOST_DIR="${DIR}/hosts/${h}"
147: HOST_KEY="${HOST_DIR}/${IPSEC_DIR}/private/${h}Key.pem"
148: mkdir -p ${HOST_DIR}/${IPSEC_DIR}/private
149: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${HOST_KEY}
150:
151: # Put a copy into swanctl directory tree
152: mkdir -p ${HOST_DIR}/${SWANCTL_DIR}/rsa
153: cp ${HOST_KEY} ${HOST_DIR}/${SWANCTL_DIR}/rsa
154:
155: # Convert host key into DER format
156: openssl rsa -in ${HOST_KEY} -outform der -out ${CA_DIR}/keys/${h}Key.der \
157: 2> /dev/null
158: done
159:
160: # Put DER-encoded moon private key and Root CA certificate into tkm scenarios
161: for t in host2host-initiator host2host-responder host2host-xfrmproxy \
162: net2net-initiator net2net-xfrmproxy xfrmproxy-expire xfrmproxy-rekey
163: do
164: TEST="${TEST_DIR}/tkm/${t}"
165: mkdir -p ${TEST}/hosts/moon/${TKM_DIR}
166: cp ${CA_DIR}/keys/moonKey.der ${CA_CERT_DER} ${TEST}/hosts/moon/${TKM_DIR}
167: done
168:
169: # Put DER_encoded sun private key and Root CA certificate into tkm scenarios
170: TEST="${TEST_DIR}/tkm/multiple-clients"
171: mkdir -p ${TEST}/hosts/sun/${TKM_DIR}
172: cp ${CA_DIR}/keys/sunKey.der ${CA_CERT_DER} ${TEST}/hosts/sun/${TKM_DIR}
173:
174: # Convert moon private key into unencrypted PKCS#8 format
175: TEST="${TEST_DIR}/ikev2/rw-pkcs8"
176: HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"
177: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"
178: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
179: openssl pkcs8 -in ${HOST_KEY} -nocrypt -topk8 -out ${TEST_KEY}
180:
181: # Convert carol private key into v1.5 DES encrypted PKCS#8 format
182: HOST_KEY="${DIR}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"
183: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
184: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
185: openssl pkcs8 -in ${HOST_KEY} -nocrypt -topk8 -v1 PBE-MD5-DES \
186: -passout "pass:nH5ZQEWtku0RJEZ6" -out ${TEST_KEY}
187:
188: # Convert dave private key into v2.0 AES-128 encrypted PKCS#8 format
189: HOST_KEY="${DIR}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"
190: TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey.pem"
191: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
192: openssl pkcs8 -in ${HOST_KEY} -nocrypt -topk8 -v2 aes128 \
193: -passout "pass:OJlNZBx+80dLh4wC6fw5LmBd" -out ${TEST_KEY}
194:
195: ################################################################################
196: # Public Key Extraction #
197: ################################################################################
198:
199: # Extract the raw moon public key for the swanctl/net2net-pubkey scenario
200: TEST="${TEST_DIR}/swanctl/net2net-pubkey"
201: TEST_PUB="${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey/moonPub.pem"
202: HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"
203: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
204: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/pubkey
205: pki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}
206: cp ${TEST_PUB} ${TEST}/hosts/sun/${SWANCTL_DIR}/pubkey
207:
208: # Put a copy into the following ikev2 scenarios
209: for t in net2net-dnssec net2net-pubkey rw-dnssec
210: do
211: TEST="${TEST_DIR}/ikev2/${t}"
212: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
213: cp ${TEST_PUB} ${TEST}/hosts/moon/${IPSEC_DIR}/certs
214: done
215:
216: # Put a copy into the ikev2/net2net-pubkey scenario
217: TEST="${TEST_DIR}/ikev2/net2net-pubkey"
218: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certs
219: cp ${TEST_PUB} ${TEST}/hosts/sun/${IPSEC_DIR}/certs
220:
221: # Put a copy into the swanctl/rw-dnssec scenario
222: TEST="${TEST_DIR}/swanctl/rw-dnssec"
223: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
224: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
225:
226: # Put a copy into the following swanctl scenarios
227: for t in rw-pubkey-anon rw-pubkey-keyid
228: do
229: TEST="${TEST_DIR}/swanctl/${t}"
230: for h in moon carol dave
231: do
232: mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/pubkey
233: cp ${TEST_PUB} ${TEST}/hosts/${h}/${SWANCTL_DIR}/pubkey
234: done
235: done
236:
237: # Extract the raw sun public key for the swanctl/net2net-pubkey scenario
238: TEST="${TEST_DIR}/swanctl/net2net-pubkey"
239: TEST_PUB="${TEST}/hosts/sun/${SWANCTL_DIR}/pubkey/sunPub.pem"
240: HOST_KEY="${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"
241: pki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}
242: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
243:
244: # Put a copy into the ikev2/net2net-dnssec scenario
245: TEST="${TEST_DIR}/ikev2/net2net-dnssec"
246: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certs
247: cp ${TEST_PUB} ${TEST}/hosts/sun/${IPSEC_DIR}/certs
248:
249: # Put a copy into the ikev2/net2net-pubkey scenario
250: TEST="${TEST_DIR}/ikev2/net2net-pubkey"
251: cp ${TEST_PUB} ${TEST}/hosts/moon/${IPSEC_DIR}/certs
252: cp ${TEST_PUB} ${TEST}/hosts/sun/${IPSEC_DIR}/certs
253:
254: # Put a copy into the swanctl/rw-pubkey-anon scenario
255: TEST="${TEST_DIR}/swanctl/rw-pubkey-anon"
256: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
257:
258: # Extract the raw carol public key for the swanctl/rw-dnssec scenario
259: TEST="${TEST_DIR}/swanctl/rw-dnssec"
260: TEST_PUB="${TEST}/hosts/carol/${SWANCTL_DIR}/pubkey/carolPub.pem"
261: HOST_KEY="${DIR}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"
262: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/pubkey
263: pki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}
264:
265: # Put a copy into the swanctl/rw-pubkey-anon scenario
266: TEST="${TEST_DIR}/swanctl/rw-pubkey-anon"
267: cp ${TEST_PUB} ${TEST}/hosts/carol/${SWANCTL_DIR}/pubkey
268: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
269:
270: # Put a copy into the swanctl/rw-pubkey-keyid scenario
271: TEST="${TEST_DIR}/swanctl/rw-pubkey-keyid"
272: cp ${TEST_PUB} ${TEST}/hosts/carol/${SWANCTL_DIR}/pubkey
273: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
274:
275: # Extract the raw dave public key for the swanctl/rw-dnssec scenario
276: TEST="${TEST_DIR}/swanctl/rw-dnssec"
277: TEST_PUB="${TEST}/hosts/dave/${SWANCTL_DIR}/pubkey/davePub.pem"
278: HOST_KEY="${DIR}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"
279: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/pubkey
280: pki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}
281:
282: # Put a copy into the swanctl/rw-pubkey-anon scenario
283: TEST="${TEST_DIR}/swanctl/rw-pubkey-anon"
284: cp ${TEST_PUB} ${TEST}/hosts/dave/${SWANCTL_DIR}/pubkey
285: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
286:
287: # Put a copy into the swanctl/rw-pubkey-keyid scenario
288: TEST="${TEST_DIR}/swanctl/rw-pubkey-keyid"
289: cp ${TEST_PUB} ${TEST}/hosts/dave/${SWANCTL_DIR}/pubkey
290: cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey
291:
292: ################################################################################
293: # Host Certificate Generation #
294: ################################################################################
295:
296: # function issue_cert: serial host cn [ou]
297: issue_cert()
298: {
299: # does optional OU argument exist?
300: if [ -z "${4}" ]
301: then
302: OU=""
303: else
304: OU=" OU=${4},"
305: fi
306:
307: HOST_DIR="${DIR}/hosts/${2}"
308: HOST_KEY="${HOST_DIR}/${IPSEC_DIR}/private/${2}Key.pem"
309: HOST_CERT="${HOST_DIR}/${IPSEC_DIR}/certs/${2}Cert.pem"
310: mkdir -p ${HOST_DIR}/${IPSEC_DIR}/certs
311: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
312: --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${3} \
313: --serial ${1} --dn "C=CH, O=${PROJECT},${OU} CN=${3}" \
314: --outform pem > ${HOST_CERT}
315: cp ${HOST_CERT} ${CA_DIR}/certs/${1}.pem
316:
317: # Put a certificate copy into swanctl directory tree
318: mkdir -p ${HOST_DIR}/${SWANCTL_DIR}/x509
319: cp ${HOST_CERT} ${HOST_DIR}/${SWANCTL_DIR}/x509
320: }
321:
322: # Generate host certificates
323: issue_cert 01 carol carol@strongswan.org Research
324: issue_cert 02 dave dave@strongswan.org Accounting
325: issue_cert 03 moon moon.strongswan.org
326: issue_cert 04 sun sun.strongswan.org
327: issue_cert 05 alice alice@strongswan.org Sales
328: issue_cert 06 venus venus.strongswan.org
329: issue_cert 07 bob bob@strongswan.org Research
330:
331: # Create PKCS#12 file for moon
332: TEST="${TEST_DIR}/ikev2/net2net-pkcs12"
333: HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"
334: HOST_CERT="${DIR}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"
335: MOON_PKCS12="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonCert.p12"
336: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
337: openssl pkcs12 -export -inkey ${HOST_KEY} -in ${HOST_CERT} -name "moon" \
338: -certfile ${CA_CERT} -caname "strongSwan Root CA" \
339: -aes128 -passout "pass:kUqd8O7mzbjXNJKQ" > ${MOON_PKCS12} 2> /dev/null
340:
341: # Create PKCS#12 file for sun
342: HOST_KEY="${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"
343: HOST_CERT="${DIR}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"
344: SUN_PKCS12="${TEST}/hosts/sun/${IPSEC_DIR}/private/sunCert.p12"
345: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/private
346: openssl pkcs12 -export -inkey ${HOST_KEY} -in ${HOST_CERT} -name "sun" \
347: -certfile ${CA_CERT} -caname "strongSwan Root CA" \
348: -aes128 -passout "pass:IxjQVCF3JGI+MoPi" > ${SUN_PKCS12} 2> /dev/null
349:
350: # Put a PKCS#12 copy into the botan/net2net-pkcs12 scenario
351: for t in botan/net2net-pkcs12 openssl-ikev2/net2net-pkcs12
352: do
353: TEST="${TEST_DIR}/${t}"
354: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs12
355: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs12
356: cp ${MOON_PKCS12} ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs12
357: cp ${SUN_PKCS12} ${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs12
358: done
359:
360: ################################################################################
361: # DNSSEC Zone Files #
362: ################################################################################
363:
364: # Store moon and sun certificates in strongswan.org zone
365: ZONE_FILE="${CA_DIR}/db.strongswan.org.certs-and-keys"
366: echo "; Automatically generated for inclusion in zone file" > ${ZONE_FILE}
367: for h in moon sun
368: do
369: HOST_CERT=${DIR}/hosts/${h}/${SWANCTL_DIR}/x509/${h}Cert.pem
370: cert=$(grep --invert-match ^----- ${HOST_CERT}| sed -e 's/^/\t\t\t\t/')
371: echo -e "${h}\tIN\tCERT\t( 1 0 0\n${cert}\n\t\t\t\t)" >> ${ZONE_FILE}
372: done
373:
374: # Store public keys in strongswan.org zone
375: echo ";" >> ${ZONE_FILE}
376: for h in moon sun carol dave
377: do
378: HOST_CERT=${DIR}/hosts/${h}/${SWANCTL_DIR}/x509/${h}Cert.pem
379: pubkey=$(pki --pub --type x509 --in ${HOST_CERT} --outform dnskey | sed 's/\(.\{0,64\}\)/\t\t\t\t\1\n/g')
380: echo -e "${h}\tIN\tIPSECKEY\t( 10 3 2 ${h}.strongswan.org.\n${pubkey}\n\t\t\t\t)" >> ${ZONE_FILE}
381: done
382:
383: # Generate a carol certificate for the swanctl/crl-to-cache scenario with base CDP
384: TEST="${TEST_DIR}/swanctl/crl-to-cache"
385: TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"
386: HOST_KEY="${DIR}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"
387: CN="carol@strongswan.org"
388: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
389: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_BASE_CDP} --type rsa \
390: --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
391: --serial 01 --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \
392: --outform pem > ${TEST_CERT}
393:
394: # Generate a moon certificate for the swanctl/crl-to-cache scenario with base CDP
395: TEST_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"
396: HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"
397: CN="moon.strongswan.org"
398: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
399: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_BASE_CDP} --type rsa \
400: --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
401: --serial 03 --dn "C=CH, O=${PROJECT}, CN=${CN}" \
402: --outform pem > ${TEST_CERT}
403:
404: # Encrypt carolKey.pem
405: HOST_KEY="${DIR}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
406: KEY_PWD="nH5ZQEWtku0RJEZ6"
407: openssl rsa -in ${HOST_KEY} -aes128 --passout pass:${KEY_PWD} -out ${HOST_KEY} \
408: 2> /dev/null
409:
410: # Put a copy into the ikev2/dynamic-initiator scenario
411: for t in ikev2/dynamic-initiator ikev1/dynamic-initiator ikev1/dynamic-responder
412: do
413: TEST="${TEST_DIR}/${t}"
414: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
415: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
416: cp ${HOST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private
417: cp ${CA_DIR}/certs/01.pem ${TEST}/hosts/dave/${IPSEC_DIR}/certs/carolCert.pem
418: done
419:
420: # Put a copy into the swanctl/rw-cert scenario
421: TEST="${TEST_DIR}/swanctl/rw-cert"
422: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa
423: cp ${HOST_KEY} ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa
424:
425: # Generate another carol certificate and revoke it
426: TEST="${TEST_DIR}/ikev2/crl-revoked"
427: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
428: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"
429: CN="carol@strongswan.org"
430: SERIAL="08"
431: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
432: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
433: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
434: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
435: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
436: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \
437: --outform pem > ${TEST_CERT}
438: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
439: pki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} --reason "key-compromise" \
440: --serial ${SERIAL} > ${CA_CRL}
441: cp ${CA_CRL} ${CA_LAST_CRL}
442:
443: # Put a copy into the ikev2/ocsp-revoked scenario
444: TEST="${TEST_DIR}/ikev2/ocsp-revoked"
445: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
446: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
447: cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private
448: cp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs
449:
450: # Generate another carol certificate with SN=002
451: TEST="${TEST_DIR}/ikev2/two-certs"
452: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey-002.pem"
453: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert-002.pem"
454: SERIAL="09"
455: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
456: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
457: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
458: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
459: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
460: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, SN=002, CN=${CN}" \
461: --outform pem > ${TEST_CERT}
462: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
463:
464: ################################################################################
465: # Research CA Certificate Generation #
466: ################################################################################
467:
468: # Generate a Research CA certificate signed by the Root CA and revoke it
469: TEST="${TEST_DIR}/ikev2/multi-level-ca-revoked"
470: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/researchCert.pem"
471: SERIAL="0A"
472: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/
473: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${RESEARCH_KEY}
474: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
475: --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \
476: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \
477: --outform pem > ${TEST_CERT}
478: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
479: pki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} --reason "ca-compromise" \
480: --serial ${SERIAL} --lastcrl ${CA_LAST_CRL} > ${CA_CRL}
481: rm ${CA_LAST_CRL}
482:
483: # Generate Research CA with the same private key as above signed by Root CA
484: SERIAL="0B"
485: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
486: --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \
487: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \
488: --outform pem > ${RESEARCH_CERT}
489: cp ${RESEARCH_CERT} ${CA_DIR}/certs/${SERIAL}.pem
490:
491: # Put a certificate copy into the following scenarios
492: for t in ikev1/multi-level-ca ikev2/multi-level-ca ikev2/multi-level-ca-ldap \
493: ikev2/multi-level-ca-pathlen ikev2/multi-level-ca-strict \
494: ikev2/ocsp-multi-level ikev2/ocsp-strict-ifuri
495: do
496: TEST="${TEST_DIR}/${t}"
497: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
498: cp ${RESEARCH_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
499: done
500:
501: for t in ikev1/multi-level-ca-cr-init ikev1/multi-level-ca-cr-resp \
502: ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-resp
503: do
504: TEST="${TEST_DIR}/${t}"
505: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/cacerts
506: cp ${RESEARCH_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/cacerts
507: done
508:
509: for t in multi-level-ca ocsp-multi-level
510: do
511: TEST="${TEST_DIR}/swanctl/${t}"
512: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
513: cp ${RESEARCH_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
514: done
515:
516: for t in rw-hash-and-url-multi-level
517: do
518: TEST="${TEST_DIR}/swanctl/${t}"
519: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509ca
520: cp ${RESEARCH_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509ca
521: done
522:
523: # Convert Research CA certificate into DER format
524: openssl x509 -in ${RESEARCH_CERT} -outform der -out ${RESEARCH_CERT_DER}
525:
526: # Generate Research CA with the same private key as above but invalid CDP
527: TEST="${TEST_DIR}/ikev2/multi-level-ca-skipped"
528: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/researchCert.pem"
529: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
530: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --type rsa \
531: --crl "http://crl.strongswan.org/not-available.crl" \
532: --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \
533: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \
534: --outform pem > ${TEST_CERT}
535:
536: ################################################################################
537: # Sales CA Certificate Generation #
538: ################################################################################
539:
540: # Generate Sales CA signed by Root CA
541: SERIAL="0C"
542: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${SALES_KEY}
543: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
544: --in ${SALES_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \
545: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=Sales CA" \
546: --outform pem > ${SALES_CERT}
547: cp ${SALES_CERT} ${CA_DIR}/certs/${SERIAL}.pem
548:
549: # Put a certificate copy into the following scenarios
550: for t in ikev1/multi-level-ca ikev2/multi-level-ca ikev2/multi-level-ca-ldap \
551: ikev2/multi-level-ca-strict ikev2/ocsp-multi-level \
552: ikev2/ocsp-multi-level ikev2/ocsp-strict-ifuri
553: do
554: TEST="${TEST_DIR}/${t}"
555: cp ${SALES_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
556: done
557:
558: for t in ikev1/multi-level-ca-cr-init ikev1/multi-level-ca-cr-resp \
559: ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-resp
560: do
561: TEST="${TEST_DIR}/${t}"
562: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/cacerts
563: cp ${SALES_CERT} ${TEST}/hosts/dave/${IPSEC_DIR}/cacerts
564: done
565:
566: for t in multi-level-ca ocsp-multi-level
567: do
568: TEST="${TEST_DIR}/swanctl/${t}"
569: cp ${SALES_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
570: done
571:
572: for t in rw-hash-and-url-multi-level
573: do
574: TEST="${TEST_DIR}/swanctl/${t}"
575: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509ca
576: cp ${SALES_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509ca
577: done
578:
579: # Convert Sales CA certificate into DER format
580: openssl x509 -in ${SALES_CERT} -outform der -out ${SALES_CERT_DER}
581:
582: # Generate an AES-128 encrypted moon key and a SHA-224 hashed certificate
583: TEST="${TEST_DIR}/ikev2/strong-keys-certs"
584: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey-aes128.pem"
585: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert-sha224.pem"
586: KEY_PWD="gOQHdrSWeFuiZtYPetWuyzHW"
587: CN="moon.strongswan.org"
588: SERIAL="0D"
589: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
590: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
591: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
592: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
593: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
594: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-224, CN=${CN}" \
595: --digest sha224 --outform pem > ${TEST_CERT}
596: openssl rsa -in ${TEST_KEY} -aes128 --passout pass:${KEY_PWD} -out ${TEST_KEY} \
597: 2> /dev/null
598: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
599:
600: # Generate an AES-192 encrypted carol key and a SHA-384 hashed certificate
601: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey-aes192.pem"
602: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert-sha384.pem"
603: KEY_PWD="ITP/H4lSHqGpUGmCpgNDklbzTNV+swjA"
604: CN="carol@strongswan.org"
605: SERIAL="0E"
606: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
607: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
608: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
609: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
610: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
611: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-384, CN=${CN}" \
612: --digest sha384 --outform pem > ${TEST_CERT}
613: openssl rsa -in ${TEST_KEY} -aes192 --passout pass:${KEY_PWD} -out ${TEST_KEY} \
614: 2> /dev/null
615: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
616:
617: # Generate an AES-256 encrypted dave key and a SHA-512 hashed certificate
618: TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey-aes256.pem"
619: TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert-sha512.pem"
620: KEY_PWD="MeFnDN7VUbj+qU/bkgRIFvbCketIk2wrrs5Ii8297N2v"
621: CN="dave@strongswan.org"
622: SERIAL="0F"
623: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
624: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
625: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
626: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
627: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
628: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-512, CN=${CN}" \
629: --digest sha512 --outform pem > ${TEST_CERT}
630: openssl rsa -in ${TEST_KEY} -aes256 --passout pass:${KEY_PWD} -out ${TEST_KEY} \
631: 2> /dev/null
632: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
633:
634: # Generate another carol certificate with an OCSP URI
635: TEST="${TEST_DIR}/ikev2/ocsp-signer-cert"
636: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
637: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"
638: CN="carol@strongswan.org"
639: SERIAL="10"
640: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
641: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
642: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
643: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
644: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
645: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=OCSP, CN=${CN}" \
646: --ocsp ${CA_OCSP} --outform pem > ${TEST_CERT}
647: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
648:
649: # Put a copy into the ikev2/ocsp-timeouts-good scenario
650: TEST="${TEST_DIR}/ikev2/ocsp-timeouts-good"
651: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
652: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
653: cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private
654: cp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs
655:
656: # Put a copy into the swanctl/ocsp-signer-cert scenario
657: for t in ocsp-signer-cert ocsp-disabled
658: do
659: cd "${TEST_DIR}/swanctl/${t}/hosts/carol/${SWANCTL_DIR}"
660: mkdir -p rsa x509
661: cp ${TEST_KEY} rsa
662: cp ${TEST_CERT} x509
663: done
664:
665: # Generate an OCSP Signing certificate for the strongSwan Root CA
666: TEST_KEY="${CA_DIR}/ocspKey.pem"
667: TEST_CERT="${CA_DIR}/ocspCert.pem"
668: CN="ocsp.strongswan.org"
669: OU="OCSP Signing Authority"
670: SERIAL="11"
671: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
672: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
673: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
674: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \
675: --flag ocspSigning --outform pem > ${TEST_CERT}
676: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
677:
678: # Generate a self-signed OCSP Signing certificate
679: TEST_KEY="${CA_DIR}/ocspKey-self.pem"
680: TEST_CERT="${CA_DIR}/ocspCert-self.pem"
681: OU="OCSP Self-Signed Authority"
682: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
683: pki --self --type rsa --in ${TEST_KEY} --flag ocspSigning \
684: --not-before "${START}" --not-after "${CA_END}" --san ${CN} \
685: --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \
686: --outform pem > ${TEST_CERT}
687:
688: # Copy self-signed OCSP Signing certificate to ikev2/ocsp-local-cert scenario
689: TEST="${TEST_DIR}/ikev2/ocsp-local-cert"
690: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/ocspcerts
691: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/ocspcerts
692: cp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/ocspcerts
693: cp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/ocspcerts
694:
695: # Generate mars virtual server certificate
696: TEST="${TEST_DIR}/ha/both-active"
697: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/marsKey.pem"
698: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/marsCert.pem"
699: CN="mars.strongswan.org"
700: OU="Virtual VPN Gateway"
701: SERIAL="12"
702: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
703: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
704: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
705: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
706: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
707: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \
708: --flag serverAuth --outform pem > ${TEST_CERT}
709: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
710:
711: # Put a copy into the mirrored gateway
712: mkdir -p ${TEST}/hosts/alice/${IPSEC_DIR}/private
713: mkdir -p ${TEST}/hosts/alice/${IPSEC_DIR}/certs
714: cp ${TEST_KEY} ${TEST}/hosts/alice/${IPSEC_DIR}/private
715: cp ${TEST_CERT} ${TEST}/hosts/alice/${IPSEC_DIR}/certs
716:
717: # Put a copy into the ha/active-passive and ikev2-redirect-active scenarios
718: for t in "ha/active-passive" "ikev2/redirect-active"
719: do
720: TEST="${TEST_DIR}/${t}"
721: for h in alice moon
722: do
723: mkdir -p ${TEST}/hosts/${h}/${IPSEC_DIR}/private
724: mkdir -p ${TEST}/hosts/${h}/${IPSEC_DIR}/certs
725: cp ${TEST_KEY} ${TEST}/hosts/${h}/${IPSEC_DIR}/private
726: cp ${TEST_CERT} ${TEST}/hosts/${h}/${IPSEC_DIR}/certs
727: done
728: done
729:
730: # Generate moon certificate with an unsupported critical X.509 extension
731: TEST="${TEST_DIR}/ikev2/critical-extension"
732: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"
733: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.pem"
734: CN="moon.strongswan.org"
735: SERIAL="13"
736: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
737: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
738: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
739: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
740: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
741: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Critical Extension, CN=${CN}" \
742: --critical 1.3.6.1.4.1.36906.1 --flag serverAuth \
743: --outform pem > ${TEST_CERT}
744: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
745:
746: # Put a copy in the openssl-ikev2/critical extension scenario
747: TEST="${TEST_DIR}/openssl-ikev2/critical-extension"
748: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/rsa
749: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
750: cp ${TEST_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/rsa
751: cp ${TEST_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
752:
753: # Generate sun certificate with an unsupported critical X.509 extension
754: TEST="${TEST_DIR}/ikev2/critical-extension"
755: TEST_KEY="${TEST}/hosts/sun/${IPSEC_DIR}/private/sunKey.pem"
756: TEST_CERT="${TEST}/hosts/sun/${IPSEC_DIR}/certs/sunCert.pem"
757: CN="sun.strongswan.org"
758: SERIAL="14"
759: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/private
760: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certs
761: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
762: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
763: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
764: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Critical Extension, CN=${CN}" \
765: --critical 1.3.6.1.4.1.36906.1 --flag serverAuth \
766: --outform pem > ${TEST_CERT}
767: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
768:
769: # Put a copy in the openssl-ikev2/critical extension scenario
770: TEST="${TEST_DIR}/openssl-ikev2/critical-extension"
771: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/rsa
772: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509
773: cp ${TEST_KEY} ${TEST}/hosts/sun/${SWANCTL_DIR}/rsa
774: cp ${TEST_CERT} ${TEST}/hosts/sun/${SWANCTL_DIR}/x509
775:
776: # Generate winnetou server certificate
777: HOST_KEY="${CA_DIR}/winnetouKey.pem"
778: HOST_CERT="${CA_DIR}/winnetouCert.pem"
779: CN="winnetou.strongswan.org"
780: SERIAL="15"
781: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${HOST_KEY}
782: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
783: --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
784: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \
785: --flag serverAuth --outform pem > ${HOST_CERT}
786: cp ${HOST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
787:
788: # Generate AAA server certificate
789: TEST="${TEST_DIR}/tnc/tnccs-20-pdp-eap"
790: TEST_KEY="${TEST}/hosts/alice/${SWANCTL_DIR}/rsa/aaaKey.pem"
791: TEST_CERT="${TEST}/hosts/alice/${SWANCTL_DIR}/x509/aaaCert.pem"
792: CN="aaa.strongswan.org"
793: SERIAL="16"
794: cd "${TEST}/hosts/alice/${SWANCTL_DIR}"
795: mkdir -p rsa x509
796: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
797: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
798: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
799: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \
800: --flag serverAuth --outform pem > ${TEST_CERT}
801: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
802:
803: # Put a copy into various tnc scenarios
804: for t in tnccs-20-pdp-pt-tls tnccs-20-ev-pt-tls tnccs-20-hcd-eap
805: do
806: cd "${TEST_DIR}/tnc/${t}/hosts/alice/${SWANCTL_DIR}"
807: mkdir -p rsa x509
808: cp ${TEST_KEY} rsa
809: cp ${TEST_CERT} x509
810: done
811:
812: # Put a copy into the alice FreeRADIUS server
813: cp ${TEST_KEY} ${TEST_CERT} ${DIR}/hosts/alice/etc/raddb/certs
814:
815: ################################################################################
816: # strongSwan Attribute Authority #
817: ################################################################################
818:
819: # Generate Attribute Authority certificate
820: TEST="${TEST_DIR}/ikev2/acert-cached"
821: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/aaKey.pem"
822: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/aacerts/aaCert.pem"
823: CN="strongSwan Attribute Authority"
824: SERIAL="17"
825: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
826: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/aacerts
827: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/acerts
828: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
829: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
830: --in ${TEST_KEY} --not-before "${START}" --not-after "${IM_END}" \
831: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \
832: --outform pem > ${TEST_CERT}
833: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
834:
835: # Generate carol's attribute certificate for sales and finance
836: ACERT="${TEST}/hosts/moon/${IPSEC_DIR}/acerts/carol-sales-finance.pem"
837: pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \
838: --in ${CA_DIR}/certs/01.pem --group sales --group finance \
839: --not-before "${START}" --not-after "${EE_END}" --outform pem > ${ACERT}
840:
841: # Generate dave's expired attribute certificate for sales
842: ACERT="${TEST}/hosts/moon/${IPSEC_DIR}/acerts/dave-sales-expired.pem"
843: pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \
844: --in ${CA_DIR}/certs/02.pem --group sales \
845: --not-before "${START}" --not-after "${SH_END}" --outform pem > ${ACERT}
846:
847: # Generate dave's attribute certificate for marketing
848: ACERT_DM="${TEST}/hosts/moon/${IPSEC_DIR}/acerts/dave-marketing.pem"
849: pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \
850: --in ${CA_DIR}/certs/02.pem --group marketing \
851: --not-before "${SH_END}" --not-after "${EE_END}" --outform pem > ${ACERT_DM}
852:
853: # Put a copy into the ikev2/acert-fallback scenario
854: TEST="${TEST_DIR}/ikev2/acert-fallback"
855: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
856: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/aacerts
857: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/acerts
858: cp ${TEST_KEY} ${TEST}/hosts/moon/${IPSEC_DIR}/private
859: cp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/aacerts
860:
861: # Generate carol's expired attribute certificate for finance
862: ACERT=${TEST}/hosts/carol/${IPSEC_DIR}/acerts/carol-finance-expired.pem
863: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/acerts
864: pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \
865: --in ${CA_DIR}/certs/01.pem --group finance \
866: --not-before "${START}" --not-after "${SH_END}" --outform pem > ${ACERT}
867:
868: # Generate carol's valid attribute certificate for sales
869: ACERT_CS=${TEST}/hosts/carol/${IPSEC_DIR}/acerts/carol-sales.pem
870: pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \
871: --in ${CA_DIR}/certs/01.pem --group sales \
872: --not-before "${SH_END}" --not-after "${EE_END}" --outform pem > ${ACERT_CS}
873:
874: # Put a copy into the ikev2/acert-inline scenario
875: TEST="${TEST_DIR}/ikev2/acert-inline"
876: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
877: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/aacerts
878: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/acerts
879: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/acerts
880: cp ${TEST_KEY} ${TEST}/hosts/moon/${IPSEC_DIR}/private
881: cp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/aacerts
882: cp ${ACERT_CS} ${TEST}/hosts/carol/${IPSEC_DIR}/acerts
883: cp ${ACERT_DM} ${TEST}/hosts/dave/${IPSEC_DIR}/acerts
884:
885: # Generate a short-lived Attribute Authority certificate
886: CN="strongSwan Legacy AA"
887: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/aaKey-expired.pem"
888: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/aacerts/aaCert-expired.pem"
889: SERIAL="18"
890: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
891: pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \
892: --in ${TEST_KEY} --not-before "${START}" --not-after "${SH_END}" \
893: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \
894: --outform pem > ${TEST_CERT}
895: cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem
896:
897: # Generate dave's attribute certificate for sales from expired AA
898: ACERT=${TEST}/hosts/dave/${IPSEC_DIR}/acerts/dave-expired-aa.pem
899: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/acerts
900: pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \
901: --in ${CA_DIR}/certs/02.pem --group sales \
902: --not-before "${START}" --not-after "${EE_END}" --outform pem > ${ACERT}
903:
904: ################################################################################
905: # strongSwan Root CA index for OCSP server #
906: ################################################################################
907:
908: # generate index.txt file for Root OCSP server
909: cp ${CA_DIR}/index.txt.template ${CA_DIR}/index.txt
910: sed -i -e "s/EE_EXPIRATION/${EE_EXP}/g" ${CA_DIR}/index.txt
911: sed -i -e "s/IM_EXPIRATION/${IM_EXP}/g" ${CA_DIR}/index.txt
912: sed -i -e "s/SH_EXPIRATION/${SH_EXP}/g" ${CA_DIR}/index.txt
913: sed -i -e "s/REVOCATION/${NOW}/g" ${CA_DIR}/index.txt
914:
915: ################################################################################
916: # Research CA #
917: ################################################################################
918:
919: # Generate a carol research certificate
920: TEST="${TEST_DIR}/ikev2/multi-level-ca"
921: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
922: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"
923: CN="carol@strongswan.org"
924: SERIAL="01"
925: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
926: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
927: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
928: pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \
929: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
930: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \
931: --crl ${RESEARCH_CDP} --outform pem > ${TEST_CERT}
932: cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem
933:
934: # Save a copy of the private key in DER format
935: openssl rsa -in ${TEST_KEY} -outform der \
936: -out ${RESEARCH_DIR}/keys/${SERIAL}.der 2> /dev/null
937:
938: # Put a copy in the following scenarios
939: for t in ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-resp \
940: ikev2/multi-level-ca-ldap ikev2/multi-level-ca-loop \
941: ikev2/multi-level-ca-revoked ikev2/multi-level-ca-skipped \
942: ikev2/multi-level-ca-strict ikev2/ocsp-multi-level \
943: ikev1/multi-level-ca ikev1/multi-level-ca-cr-init \
944: ikev1/multi-level-ca-cr-resp
945: do
946: TEST="${TEST_DIR}/${t}"
947: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
948: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
949: cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private
950: cp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs
951: done
952:
953: for t in multi-level-ca rw-hash-and-url-multi-level ocsp-multi-level
954: do
955: TEST="${TEST_DIR}/swanctl/${t}"
956: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa
957: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
958: cp ${TEST_KEY} ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa
959: cp ${TEST_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
960: done
961:
962: # Generate a carol research certificate without a CDP
963: TEST="${TEST_DIR}/ikev2/ocsp-strict-ifuri"
964: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"
965: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
966: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
967: pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \
968: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
969: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \
970: --outform pem > ${TEST_CERT}
971: cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private
972:
973: # Generate an OCSP Signing certificate for the Research CA
974: TEST_KEY="${RESEARCH_DIR}/ocspKey.pem"
975: TEST_CERT="${RESEARCH_DIR}/ocspCert.pem"
976: OU="Research OCSP Signing Authority"
977: CN="ocsp.research.strongswan.org"
978: SERIAL="02"
979: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
980: pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \
981: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
982: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \
983: --crl ${RESEARCH_CDP} --flag ocspSigning --outform pem > ${TEST_CERT}
984: cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem
985:
986: # Generate a Sales CA certificate signed by the Research CA
987: TEST="${TEST_DIR}/ikev2/multi-level-ca-loop"
988: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/sales_by_researchCert.pem"
989: SERIAL="03"
990: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
991: pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \
992: --in ${SALES_KEY} --not-before "${START}" --not-after "${EE_END}" --ca \
993: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=Sales CA" \
994: --crl ${RESEARCH_CDP} --outform pem > ${TEST_CERT}
995: cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem
996:
997: ################################################################################
998: # Duck Research CA #
999: ################################################################################
1000:
1001: # Generate a Duck Research CA certificate signed by the Research CA
1002: SERIAL="04"
1003: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${DUCK_KEY}
1004: pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \
1005: --in ${DUCK_KEY} --not-before "${START}" --not-after "${EE_END}" --ca \
1006: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Duck Research CA" \
1007: --crl ${RESEARCH_CDP} --outform pem > ${DUCK_CERT}
1008: cp ${DUCK_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem
1009:
1010: # Put a certificate copy in the ikev2/multilevel-ca-pathlen scenario
1011: TEST="${TEST_DIR}/ikev2/multi-level-ca-pathlen"
1012: cp ${DUCK_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
1013:
1014: # Generate a carol certificate signed by the Duck Research CA
1015: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
1016: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"
1017: CN="carol@strongswan.org"
1018: SERIAL="01"
1019: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
1020: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
1021: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1022: pki --issue --cakey ${DUCK_KEY} --cacert ${DUCK_CERT} --type rsa \
1023: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1024: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Duck Research, CN=${CN}" \
1025: --outform pem > ${TEST_CERT}
1026: cp ${TEST_CERT} ${DUCK_DIR}/certs/${SERIAL}.pem
1027:
1028: # Generate index.txt file for Research OCSP server
1029: cp ${RESEARCH_DIR}/index.txt.template ${RESEARCH_DIR}/index.txt
1030: sed -i -e "s/EE_EXPIRATION/${EE_EXP}/g" ${RESEARCH_DIR}/index.txt
1031:
1032: ################################################################################
1033: # Sales CA #
1034: ################################################################################
1035:
1036: # Generate a dave sales certificate
1037: TEST="${TEST_DIR}/ikev2/multi-level-ca"
1038: TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey.pem"
1039: TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert.pem"
1040: CN="dave@strongswan.org"
1041: SERIAL="01"
1042: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
1043: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
1044: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1045: pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \
1046: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1047: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=${CN}" \
1048: --crl ${SALES_CDP} --outform pem > ${TEST_CERT}
1049: cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem
1050:
1051: # Save a copy of the private key in DER format
1052: openssl rsa -in ${TEST_KEY} -outform der \
1053: -out ${SALES_DIR}/keys/${SERIAL}.der 2> /dev/null
1054:
1055: # Put a copy in the following scenarios
1056: for t in ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-resp \
1057: ikev2/multi-level-ca-ldap ikev2/multi-level-ca-strict \
1058: ikev2/ocsp-multi-level ikev1/multi-level-ca \
1059: ikev1/multi-level-ca-cr-init ikev1/multi-level-ca-cr-resp
1060: do
1061: TEST="${TEST_DIR}/${t}"
1062: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
1063: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
1064: cp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private
1065: cp ${TEST_CERT} ${TEST}/hosts/dave/${IPSEC_DIR}/certs
1066: done
1067:
1068: for t in multi-level-ca rw-hash-and-url-multi-level ocsp-multi-level
1069: do
1070: TEST="${TEST_DIR}/swanctl/${t}"
1071: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/rsa
1072: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1073: cp ${TEST_KEY} ${TEST}/hosts/dave/${SWANCTL_DIR}/rsa
1074: cp ${TEST_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1075: done
1076:
1077: # Generate a dave sales certificate with an inactive OCSP URI and no CDP
1078: TEST="${TEST_DIR}/ikev2/ocsp-strict-ifuri"
1079: TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert.pem"
1080: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
1081: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
1082: pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \
1083: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1084: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=${CN}" \
1085: --ocsp "http://ocsp2.strongswan.org:8882" --outform pem > ${TEST_CERT}
1086: cp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private
1087:
1088: # Generate an OCSP Signing certificate for the Sales CA
1089: TEST_KEY="${SALES_DIR}/ocspKey.pem"
1090: TEST_CERT="${SALES_DIR}/ocspCert.pem"
1091: OU="Sales OCSP Signing Authority"
1092: CN="ocsp.sales.strongswan.org"
1093: SERIAL="02"
1094: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1095: pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \
1096: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1097: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \
1098: --crl ${SALES_CDP} --flag ocspSigning --outform pem > ${TEST_CERT}
1099: cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem
1100:
1101: # Generate a Research CA certificate signed by the Sales CA
1102: TEST="${TEST_DIR}/ikev2/multi-level-ca-loop"
1103: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/research_by_salesCert.pem"
1104: SERIAL="03"
1105: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
1106: pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \
1107: --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${EE_END}" --ca \
1108: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \
1109: --crl ${SALES_CDP} --outform pem > ${TEST_CERT}
1110: cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem
1111:
1112: # generate index.txt file for Sales OCSP server
1113: cp ${SALES_DIR}/index.txt.template ${SALES_DIR}/index.txt
1114: sed -i -e "s/EE_EXPIRATION/${EE_EXP}/g" ${SALES_DIR}/index.txt
1115:
1116: ################################################################################
1117: # strongSwan EC Root CA #
1118: ################################################################################
1119:
1120: # Generate strongSwan EC Root CA
1121: pki --gen --type ecdsa --size 521 --outform pem > ${ECDSA_KEY}
1122: pki --self --type ecdsa --in ${ECDSA_KEY} \
1123: --not-before "${START}" --not-after "${CA_END}" --ca \
1124: --dn "C=CH, O=${PROJECT}, CN=strongSwan EC Root CA" \
1125: --outform pem > ${ECDSA_CERT}
1126:
1127: # Put a copy in the openssl-ikev2/ecdsa-certs scenario
1128: for t in ecdsa-certs ecdsa-pkcs8
1129: do
1130: TEST="${TEST_DIR}/openssl-ikev2/${t}"
1131: for h in moon carol dave
1132: do
1133: mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1134: cp ${ECDSA_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1135: done
1136: done
1137:
1138: # Generate a moon ECDSA 521 bit certificate
1139: TEST="${TEST_DIR}/openssl-ikev2/ecdsa-certs"
1140: MOON_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/ecdsa/moonKey.pem"
1141: MOON_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"
1142: CN="moon.strongswan.org"
1143: SERIAL="01"
1144: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/ecdsa
1145: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1146: pki --gen --type ecdsa --size 521 --outform pem > ${MOON_KEY}
1147: pki --issue --cakey ${ECDSA_KEY} --cacert ${ECDSA_CERT} --type ecdsa \
1148: --in ${MOON_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1149: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=ECDSA 512 bit, CN=${CN}" \
1150: --crl ${ECDSA_CDP} --outform pem > ${MOON_CERT}
1151: cp ${MOON_CERT} ${ECDSA_DIR}/certs/${SERIAL}.pem
1152:
1153: # Generate a carol ECDSA 256 bit certificate
1154: CAROL_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/ecdsa/carolKey.pem"
1155: CAROL_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"
1156: CN="carol@strongswan.org"
1157: SERIAL="02"
1158: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/ecdsa
1159: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1160: pki --gen --type ecdsa --size 256 --outform pem > ${CAROL_KEY}
1161: pki --issue --cakey ${ECDSA_KEY} --cacert ${ECDSA_CERT} --type ecdsa \
1162: --in ${CAROL_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1163: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=ECDSA 256 bit, CN=${CN}" \
1164: --crl ${ECDSA_CDP} --outform pem > ${CAROL_CERT}
1165: cp ${CAROL_CERT} ${ECDSA_DIR}/certs/${SERIAL}.pem
1166:
1167: # Generate a dave ECDSA 384 bit certificate
1168: DAVE_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/ecdsa/daveKey.pem"
1169: DAVE_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"
1170: CN="dave@strongswan.org"
1171: SERIAL="03"
1172: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/ecdsa
1173: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1174: pki --gen --type ecdsa --size 384 --outform pem > ${DAVE_KEY}
1175: pki --issue --cakey ${ECDSA_KEY} --cacert ${ECDSA_CERT} --type ecdsa \
1176: --in ${DAVE_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1177: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=ECDSA 384 bit, CN=${CN}" \
1178: --crl ${ECDSA_CDP} --outform pem > ${DAVE_CERT}
1179: cp ${DAVE_CERT} ${ECDSA_DIR}/certs/${SERIAL}.pem
1180:
1181: # Put CA and EE certificate copies in the openssl-ikev2/ecdsa-pkcs8 scenario
1182: TEST="${TEST_DIR}/openssl-ikev2/ecdsa-pkcs8"
1183: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1184: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1185: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1186: cp ${MOON_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1187: cp ${CAROL_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1188: cp ${DAVE_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1189:
1190: # Convert moon private key into unencrypted PKCS#8 format
1191: TEST_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8/moonKey.pem"
1192: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8
1193: openssl pkcs8 -in ${MOON_KEY} -nocrypt -topk8 -out ${TEST_KEY}
1194:
1195: # Convert carol private key into v1.5 DES encrypted PKCS#8 format
1196: TEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8/carolKey.pem"
1197: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8
1198: openssl pkcs8 -in ${CAROL_KEY} -nocrypt -topk8 -v1 PBE-MD5-DES \
1199: -passout "pass:nH5ZQEWtku0RJEZ6" -out ${TEST_KEY}
1200:
1201: # Convert dave private key into v2.0 AES-128 encrypted PKCS#8 format
1202: TEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8/daveKey.pem"
1203: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8
1204: openssl pkcs8 -in ${DAVE_KEY} -nocrypt -topk8 -v2 aes128 \
1205: -passout "pass:OJlNZBx+80dLh4wC6fw5LmBd" -out ${TEST_KEY}
1206:
1207: # Put CA and EE certificate copies in the openssl-ikev1/ecdsa-certs scenario
1208: TEST="${TEST_DIR}/openssl-ikev1/ecdsa-certs"
1209: cd ${TEST}/hosts/moon/${SWANCTL_DIR}
1210: mkdir -p ecdsa x509 x509ca
1211: cp ${MOON_KEY} ecdsa
1212: cp ${MOON_CERT} x509
1213: cp ${ECDSA_CERT} x509ca
1214: cd ${TEST}/hosts/carol/${SWANCTL_DIR}
1215: mkdir -p ecdsa x509 x509ca
1216: cp ${CAROL_KEY} ecdsa
1217: cp ${CAROL_CERT} x509
1218: cp ${ECDSA_CERT} x509ca
1219: cd ${TEST}/hosts/dave/${SWANCTL_DIR}
1220: mkdir -p ecdsa x509 x509ca
1221: cp ${DAVE_KEY} ecdsa
1222: cp ${DAVE_CERT} x509
1223: cp ${ECDSA_CERT} x509ca
1224:
1225: ################################################################################
1226: # strongSwan RFC3779 Root CA #
1227: ################################################################################
1228:
1229: # Generate strongSwan RFC3779 Root CA
1230: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${RFC3779_KEY}
1231: pki --self --type rsa --in ${RFC3779_KEY} \
1232: --not-before "${START}" --not-after "${CA_END}" --ca \
1233: --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=strongSwan RFC3779 Root CA" \
1234: --addrblock "10.1.0.0-10.2.255.255" \
1235: --addrblock "10.3.0.1-10.3.3.232" \
1236: --addrblock "192.168.0.0/24" \
1237: --addrblock "fec0::-fec2:ffff:ffff:ffff:ffff:ffff:ffff:ffff" \
1238: --outform pem > ${RFC3779_CERT}
1239:
1240: # Put a copy in the ikev2/net2net-rfc3779 scenario
1241: TEST="${TEST_DIR}/ikev2/net2net-rfc3779"
1242: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
1243: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/cacerts
1244: cp ${RFC3779_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
1245: cp ${RFC3779_CERT} ${TEST}/hosts/sun/${IPSEC_DIR}/cacerts
1246:
1247: # Put a copy in the ipv6/rw-rfc3779-ikev2 scenario
1248: TEST="${TEST_DIR}/ipv6/rw-rfc3779-ikev2"
1249: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509ca
1250: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509ca
1251: cp ${RFC3779_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509ca
1252: cp ${RFC3779_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509ca
1253:
1254: # Generate a moon RFC3779 certificate
1255: TEST="${TEST_DIR}/ikev2/net2net-rfc3779"
1256: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"
1257: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.pem"
1258: CN="moon.strongswan.org"
1259: SERIAL="01"
1260: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
1261: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
1262: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1263: pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \
1264: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1265: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \
1266: --addrblock "10.1.0.0/16" --addrblock "192.168.0.1/32" \
1267: --addrblock "fec0::1/128" --addrblock "fec1::/16" \
1268: --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}
1269: cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem
1270:
1271: # Put a copy in the ipv6 scenarios
1272: for t in net2net-rfc3779-ikev2 rw-rfc3779-ikev2
1273: do
1274: cd "${TEST_DIR}/ipv6/${t}/hosts/moon/${SWANCTL_DIR}"
1275: mkdir -p rsa x509 x509ca
1276: cp ${TEST_KEY} rsa
1277: cp ${TEST_CERT} x509
1278: cp ${RFC3779_CERT} x509ca
1279: done
1280:
1281: # Generate a sun RFC3779 certificate
1282: TEST="${TEST_DIR}/ikev2/net2net-rfc3779"
1283: TEST_KEY="${TEST}/hosts/sun/${IPSEC_DIR}/private/sunKey.pem"
1284: TEST_CERT="${TEST}/hosts/sun/${IPSEC_DIR}/certs/sunCert.pem"
1285: CN="sun.strongswan.org"
1286: SERIAL="02"
1287: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/private
1288: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certs
1289: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1290: pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \
1291: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1292: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \
1293: --addrblock "10.2.0.0/16" --addrblock "192.168.0.2/32" \
1294: --addrblock "fec0::2/128" --addrblock "fec2::/16" \
1295: --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}
1296: cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem
1297:
1298: # Put a copy in the ipv6/net2net-rfc3779-ikev2 scenario
1299: cd "${TEST_DIR}/ipv6/net2net-rfc3779-ikev2/hosts/sun/${SWANCTL_DIR}"
1300: mkdir -p rsa x509 x509ca
1301: cp ${TEST_KEY} rsa
1302: cp ${TEST_CERT} x509
1303: cp ${RFC3779_CERT} x509ca
1304:
1305: # Generate a carol RFC3779 certificate
1306: TEST="${TEST_DIR}/ipv6/rw-rfc3779-ikev2"
1307: TEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"
1308: TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"
1309: CN="carol@strongswan.org"
1310: SERIAL="03"
1311: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa
1312: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1313: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1314: pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \
1315: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1316: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \
1317: --addrblock "10.3.0.1/32" --addrblock "192.168.0.100/32" \
1318: --addrblock "fec0::10/128" \
1319: --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}
1320: cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem
1321:
1322: # Generate a carol RFC3779 certificate
1323: TEST="${TEST_DIR}/ipv6/rw-rfc3779-ikev2"
1324: TEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"
1325: TEST_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"
1326: CN="dave@strongswan.org"
1327: SERIAL="04"
1328: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/rsa
1329: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1330: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1331: pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \
1332: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1333: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \
1334: --addrblock "10.3.0.2/32" --addrblock "192.168.0.200/32" \
1335: --addrblock "fec0::20/128" \
1336: --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}
1337: cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem
1338:
1339: ################################################################################
1340: # strongSwan SHA3-RSA Root CA #
1341: ################################################################################
1342:
1343: # Use specific plugin configuration to issue certificates with SHA-3 signatures
1344: # as not all crypto plugins support them. To avoid entropy issues use the
1345: # default plugins to generate the keys.
1346: SHA3_PKI_PLUGINS="gmp pem pkcs1 random sha1 sha3 x509"
1347:
1348: # Generate strongSwan SHA3-RSA Root CA
1349: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${SHA3_RSA_KEY}
1350: PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \
1351: pki --self --type rsa --in ${SHA3_RSA_KEY} --digest sha3_256 \
1352: --not-before "${START}" --not-after "${CA_END}" --ca \
1353: --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=strongSwan Root CA" \
1354: --outform pem > ${SHA3_RSA_CERT}
1355:
1356: # Put a copy in the swanctl/net2net-sha3-rsa-cert scenario
1357: TEST="${TEST_DIR}/swanctl/net2net-sha3-rsa-cert"
1358: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
1359: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509ca
1360: cp ${SHA3_RSA_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
1361: cp ${SHA3_RSA_CERT} ${TEST}/hosts/sun/${SWANCTL_DIR}/x509ca
1362:
1363: # Generate a sun SHA3-RSA certificate
1364: SUN_KEY="${TEST}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"
1365: SUN_CERT="${TEST}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"
1366: CN="sun.strongswan.org"
1367: SERIAL="01"
1368: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/rsa
1369: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509
1370: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${SUN_KEY}
1371: PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \
1372: pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \
1373: --in ${SUN_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1374: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \
1375: --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${SUN_CERT}
1376: cp ${SUN_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem
1377:
1378: # Generate a moon SHA3-RSA certificate
1379: MOON_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"
1380: MOON_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"
1381: CN="moon.strongswan.org"
1382: SERIAL="02"
1383: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/rsa
1384: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1385: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${MOON_KEY}
1386: PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \
1387: pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \
1388: --in ${MOON_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1389: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \
1390: --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${MOON_CERT}
1391: cp ${MOON_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem
1392:
1393: # Put a copy in the botan/net2net-sha3-rsa-cert scenario
1394: TEST="${TEST_DIR}/botan/net2net-sha3-rsa-cert"
1395: cd ${TEST}/hosts/moon/${SWANCTL_DIR}
1396: mkdir -p rsa x509 x509ca
1397: cp ${MOON_KEY} rsa
1398: cp ${MOON_CERT} x509
1399: cp ${SHA3_RSA_CERT} x509ca
1400: cd ${TEST}/hosts/sun/${SWANCTL_DIR}
1401: mkdir -p rsa x509 x509ca
1402: cp ${SUN_KEY} rsa
1403: cp ${SUN_CERT} x509
1404: cp ${SHA3_RSA_CERT} x509ca
1405:
1406: # Put a copy in the swanctl/rw-eap-tls-sha3-rsa scenario
1407: TEST="${TEST_DIR}/swanctl/rw-eap-tls-sha3-rsa"
1408: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/rsa
1409: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1410: cp ${MOON_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/rsa
1411: cp ${MOON_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1412:
1413: # Generate a carol SHA3-RSA certificate
1414: TEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"
1415: TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"
1416: CN="carol@strongswan.org"
1417: SERIAL="03"
1418: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa
1419: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1420: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1421: PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \
1422: pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \
1423: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1424: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \
1425: --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${TEST_CERT}
1426: cp ${TEST_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem
1427:
1428: # Generate a dave SHA3-RSA certificate
1429: TEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"
1430: TEST_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"
1431: CN="dave@strongswan.org"
1432: SERIAL="04"
1433: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/rsa
1434: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1435: pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}
1436: PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \
1437: pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \
1438: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1439: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \
1440: --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${TEST_CERT}
1441: cp ${TEST_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem
1442:
1443: for h in moon carol dave
1444: do
1445: mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1446: cp ${SHA3_RSA_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1447: done
1448:
1449: ################################################################################
1450: # strongSwan Ed25519 Root CA #
1451: ################################################################################
1452:
1453: # Generate strongSwan Ed25519 Root CA
1454: pki --gen --type ed25519 --outform pem > ${ED25519_KEY}
1455: pki --self --type ed25519 --in ${ED25519_KEY} \
1456: --not-before "${START}" --not-after "${CA_END}" --ca \
1457: --dn "C=CH, O=${PROJECT}, CN=strongSwan Ed25519 Root CA" \
1458: --cert-policy "1.3.6.1.4.1.36906.1.1.1" \
1459: --cert-policy "1.3.6.1.4.1.36906.1.1.2" \
1460: --outform pem > ${ED25519_CERT}
1461:
1462: # Put a copy in the swanctl/net2net-ed25519 scenario
1463: TEST="${TEST_DIR}/swanctl/net2net-ed25519"
1464: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
1465: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509ca
1466: cp ${ED25519_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
1467: cp ${ED25519_CERT} ${TEST}/hosts/sun/${SWANCTL_DIR}/x509ca
1468:
1469: # Generate a sun Ed25519 certificate
1470: SUN_KEY="${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs8/sunKey.pem"
1471: SUN_CERT="${TEST}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"
1472: CN="sun.strongswan.org"
1473: SERIAL="01"
1474: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs8
1475: mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509
1476: pki --gen --type ed25519 --outform pem > ${SUN_KEY}
1477: pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \
1478: --in ${SUN_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1479: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \
1480: --cert-policy "1.3.6.1.4.1.36906.1.1.2" --flag "serverAuth" \
1481: --crl ${ED25519_CDP} --outform pem > ${SUN_CERT}
1482: cp ${SUN_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem
1483:
1484: # Generate a moon Ed25519 certificate
1485: MOON_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8/moonKey.pem"
1486: MOON_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"
1487: CN="moon.strongswan.org"
1488: SERIAL="02"
1489: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8
1490: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1491: pki --gen --type ed25519 --outform pem > ${MOON_KEY}
1492: pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \
1493: --in ${MOON_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1494: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \
1495: --cert-policy "1.3.6.1.4.1.36906.1.1.1" --flag "serverAuth" \
1496: --crl ${ED25519_CDP} --outform pem > ${MOON_CERT}
1497: cp ${MOON_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem
1498:
1499: # Put a copy in the botan/net2net-ed25519 scenario
1500: TEST="${TEST_DIR}/botan/net2net-ed25519"
1501: cd ${TEST}/hosts/moon/${SWANCTL_DIR}
1502: mkdir -p pkcs8 x509 x509ca
1503: cp ${MOON_KEY} pkcs8
1504: cp ${MOON_CERT} x509
1505: cp ${ED25519_CERT} x509ca
1506: cd ${TEST}/hosts/sun/${SWANCTL_DIR}
1507: mkdir -p pkcs8 x509 x509ca
1508: cp ${SUN_KEY} pkcs8
1509: cp ${SUN_CERT} x509
1510: cp ${ED25519_CERT} x509ca
1511:
1512: # Put a copy in the ikev2/net2net-ed25519 scenario
1513: TEST="${TEST_DIR}/ikev2/net2net-ed25519"
1514: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}
1515: cd ${TEST}/hosts/moon/${IPSEC_DIR}
1516: mkdir -p cacerts certs private
1517: cp ${MOON_KEY} private
1518: cp ${MOON_CERT} certs
1519: cp ${ED25519_CERT} cacerts
1520: mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}
1521: cd ${TEST}/hosts/sun/${IPSEC_DIR}
1522: mkdir -p cacerts certs private
1523: cp ${SUN_KEY} private
1524: cp ${SUN_CERT} certs
1525: cp ${ED25519_CERT} cacerts
1526:
1527: # Put a copy in the swanctl/rw-ed25519-certpol scenario
1528: TEST="${TEST_DIR}/swanctl/rw-ed25519-certpol"
1529: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8
1530: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1531: cp ${MOON_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8
1532: cp ${MOON_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1533:
1534: for h in moon carol dave
1535: do
1536: mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1537: cp ${ED25519_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1538: done
1539:
1540: # Generate a carol Ed25519 certificate
1541: TEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8/carolKey.pem"
1542: TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"
1543: CN="carol@strongswan.org"
1544: SERIAL="03"
1545: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8
1546: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1547: pki --gen --type ed25519 --outform pem > ${TEST_KEY}
1548: pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \
1549: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1550: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \
1551: --cert-policy "1.3.6.1.4.1.36906.1.1.1" --flag "clientAuth" \
1552: --crl ${ED25519_CDP} --outform pem > ${TEST_CERT}
1553: cp ${TEST_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem
1554:
1555: # Generate a dave Ed25519 certificate
1556: TEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8/daveKey.pem"
1557: TEST_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"
1558: CN="dave@strongswan.org"
1559: SERIAL="04"
1560: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8
1561: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1562: pki --gen --type ed25519 --outform pem > ${TEST_KEY}
1563: pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \
1564: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1565: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \
1566: --cert-policy "1.3.6.1.4.1.36906.1.1.2" --flag "clientAuth" \
1567: --crl ${ED25519_CDP} --outform pem > ${TEST_CERT}
1568: cp ${TEST_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem
1569:
1570: ################################################################################
1571: # strongSwan Monster Root CA #
1572: ################################################################################
1573:
1574: # Generate strongSwan Monster Root CA
1575: pki --gen --type rsa --size ${MONSTER_CA_RSA_SIZE} --outform pem > ${MONSTER_KEY}
1576: pki --self --type rsa --in ${MONSTER_KEY} \
1577: --not-before "01.05.09 15:00:00" --not-after "01.05.59 15:00:00" --ca \
1578: --dn "C=CH, O=${PROJECT}, CN=strongSwan Monster CA" \
1579: --outform pem > ${MONSTER_CERT}
1580:
1581: # Put a copy in the ikev2/after-2038-certs scenario
1582: TEST="${TEST_DIR}/ikev2/after-2038-certs"
1583: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
1584: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/cacerts
1585: cp ${MONSTER_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts
1586: cp ${MONSTER_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/cacerts
1587:
1588: # Generate a moon Monster certificate
1589: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"
1590: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.pem"
1591: CN="moon.strongswan.org"
1592: SERIAL="01"
1593: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
1594: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
1595: pki --gen --type rsa --size ${MONSTER_EE_RSA_SIZE} --outform pem > ${TEST_KEY}
1596: pki --issue --cakey ${MONSTER_KEY} --cacert ${MONSTER_CERT} --type rsa \
1597: --in ${TEST_KEY} --san ${CN} \
1598: --not-before "01.05.09 15:00:00" --not-after "01.05.39 15:00:00" - \
1599: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Monster, CN=${CN}" \
1600: --crl ${MONSTER_CDP} --outform pem > ${TEST_CERT}
1601: cp ${TEST_CERT} ${MONSTER_DIR}/certs/${SERIAL}.pem
1602:
1603: # Generate a carol Monster certificate
1604: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"
1605: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"
1606: CN="carol@strongswan.org"
1607: SERIAL="02"
1608: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
1609: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
1610: pki --gen --type rsa --size ${MONSTER_EE_RSA_SIZE} --outform pem > ${TEST_KEY}
1611: pki --issue --cakey ${MONSTER_KEY} --cacert ${MONSTER_CERT} --type rsa \
1612: --in ${TEST_KEY} --san ${CN} \
1613: --not-before "01.05.09 15:00:00" --not-after "01.05.39 15:00:00" - \
1614: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Monster, CN=${CN}" \
1615: --crl ${MONSTER_CDP} --outform pem > ${TEST_CERT}
1616: cp ${TEST_CERT} ${MONSTER_DIR}/certs/${SERIAL}.pem
1617:
1618: ################################################################################
1619: # Bliss CA #
1620: ################################################################################
1621:
1622: # Generate BLISS Root CA with 192 bit security strength
1623: pki --gen --type bliss --size 4 > ${BLISS_KEY}
1624: pki --self --type bliss --in ${BLISS_KEY} --digest sha3_512 \
1625: --not-before "${START}" --not-after "${CA_END}" --ca \
1626: --dn "C=CH, O=${PROJECT}, CN=strongSwan BLISS Root CA" > ${BLISS_CERT}
1627:
1628: # Put a copy in the following scenarios
1629: for t in rw-newhope-bliss rw-ntru-bliss
1630: do
1631: TEST="${TEST_DIR}/ikev2/${t}"
1632: for h in moon carol dave
1633: do
1634: mkdir -p ${TEST}/hosts/${h}/${IPSEC_DIR}/cacerts
1635: cp ${BLISS_CERT} ${TEST}/hosts/${h}/${IPSEC_DIR}/cacerts
1636: done
1637:
1638: TEST="${TEST_DIR}/swanctl/${t}"
1639: for h in moon carol dave
1640: do
1641: mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1642: cp ${BLISS_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca
1643: done
1644: done
1645:
1646: # Generate a carol BLISS certificate with 128 bit security strength
1647: TEST="${TEST_DIR}/ikev2/rw-newhope-bliss"
1648: TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.der"
1649: TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.der"
1650: CN="carol@strongswan.org"
1651: SERIAL="01"
1652: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
1653: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
1654: pki --gen --type bliss --size 1 > ${TEST_KEY}
1655: pki --issue --cakey ${BLISS_KEY} --cacert ${BLISS_CERT} --type bliss \
1656: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1657: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=BLISS I, CN=${CN}" \
1658: --crl ${BLISS_CDP} --digest sha3_512 > ${TEST_CERT}
1659: cp ${TEST_CERT} ${BLISS_DIR}/certs/${SERIAL}.der
1660:
1661: # Put a copy in the ikev2/rw-ntru-bliss scenario
1662: TEST="${TEST_DIR}/ikev2/rw-ntru-bliss"
1663: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private
1664: mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs
1665: cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private
1666: cp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs
1667:
1668: # Put a copy in the swanctl scenarios
1669: for t in rw-newhope-bliss rw-ntru-bliss
1670: do
1671: TEST="${TEST_DIR}/swanctl/${t}"
1672: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/bliss
1673: mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1674: cp ${TEST_KEY} ${TEST}/hosts/carol/${SWANCTL_DIR}/bliss
1675: cp ${TEST_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509
1676: done
1677:
1678: # Generate a dave BLISS certificate with 160 bit security strength
1679: TEST="${TEST_DIR}/ikev2/rw-newhope-bliss"
1680: TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey.der"
1681: TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert.der"
1682: CN="dave@strongswan.org"
1683: SERIAL="02"
1684: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
1685: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
1686: pki --gen --type bliss --size 3 > ${TEST_KEY}
1687: pki --issue --cakey ${BLISS_KEY} --cacert ${BLISS_CERT} --type bliss \
1688: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1689: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=BLISS III, CN=${CN}" \
1690: --crl ${BLISS_CDP} --digest sha3_512 > ${TEST_CERT}
1691: cp ${TEST_CERT} ${BLISS_DIR}/certs/${SERIAL}.der
1692:
1693: # Put a copy in the ikev2/rw-ntru-bliss scenario
1694: TEST="${TEST_DIR}/ikev2/rw-ntru-bliss"
1695: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private
1696: mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs
1697: cp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private/
1698: cp ${TEST_CERT} ${TEST}/hosts/dave/${IPSEC_DIR}/certs/
1699:
1700: # Put a copy in the swanctl scenarios
1701: for t in rw-newhope-bliss rw-ntru-bliss
1702: do
1703: TEST="${TEST_DIR}/swanctl/${t}"
1704: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/bliss
1705: mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509
1706: cp ${TEST_KEY} ${TEST}/hosts/dave/${SWANCTL_DIR}/bliss/
1707: cp ${TEST_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509/
1708: done
1709:
1710: # Generate a moon BLISS certificate with 192 bit security strength
1711: TEST="${TEST_DIR}/ikev2/rw-newhope-bliss"
1712: TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.der"
1713: TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.der"
1714: CN="moon.strongswan.org"
1715: SERIAL="03"
1716: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
1717: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
1718: pki --gen --type bliss --size 4 > ${TEST_KEY}
1719: pki --issue --cakey ${BLISS_KEY} --cacert ${BLISS_CERT} --type bliss \
1720: --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \
1721: --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=BLISS IV, CN=${CN}" \
1722: --crl ${BLISS_CDP} --digest sha3_512 > ${TEST_CERT}
1723: cp ${TEST_CERT} ${BLISS_DIR}/certs/${SERIAL}.der
1724:
1725: # Put a copy in the ikev2/rw-ntru-bliss scenario
1726: TEST="${TEST_DIR}/ikev2/rw-ntru-bliss"
1727: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/private
1728: mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs
1729: cp ${TEST_KEY} ${TEST}/hosts/moon/${IPSEC_DIR}/private/
1730: cp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/certs/
1731:
1732: # Put a copy in the swanctl scenarios
1733: for t in rw-newhope-bliss rw-ntru-bliss
1734: do
1735: TEST="${TEST_DIR}/swanctl/${t}"
1736: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/bliss
1737: mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509
1738: cp ${TEST_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/bliss/
1739: cp ${TEST_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509/
1740: done
1741:
1742: ################################################################################
1743: # SQL Data #
1744: ################################################################################
1745:
1746: CA_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${CA_KEY}`
1747: CA_SPKI_HEX=`pki --keyid --type rsa --format hex --id spki --in ${CA_KEY}`
1748: CA_CERT_HEX=`cat ${CA_CERT_DER} | hexdump -v -e '/1 "%02x"'`
1749: CA_CERT_PEM_HEX=`cat ${CA_CERT} | hexdump -v -e '/1 "%02x"'`
1750: #
1751: MOON_CERT="${DIR}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"
1752: MOON_KEY="${CA_DIR}/keys/moonKey.der"
1753: MOON_KEY_PEM="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"
1754: MOON_KEY_PEM_HEX=`cat ${MOON_KEY_PEM} | hexdump -v -e '/1 "%02x"'`
1755: MOON_KEY_HEX=`cat ${MOON_KEY} | hexdump -v -e '/1 "%02x"'`
1756: MOON_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${MOON_KEY}`
1757: MOON_PUB_HEX=`pki --pub --type rsa --in ${MOON_KEY} | hexdump -v -e '/1 "%02x"'`
1758: MOON_CERT_HEX=`openssl x509 -in ${MOON_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1759: MOON_CERT_PEM_HEX=`cat ${MOON_CERT} | hexdump -v -e '/1 "%02x"'`
1760: #
1761: SUN_CERT="${DIR}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"
1762: SUN_KEY="${CA_DIR}/keys/sunKey.der"
1763: SUN_KEY_PEM="${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"
1764: SUN_KEY_PEM_HEX=`cat ${SUN_KEY_PEM} | hexdump -v -e '/1 "%02x"'`
1765: SUN_KEY_HEX=`cat ${SUN_KEY} | hexdump -v -e '/1 "%02x"'`
1766: SUN_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${SUN_KEY}`
1767: SUN_CERT_HEX=`openssl x509 -in ${SUN_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1768: SUN_CERT_PEM_HEX=`cat ${SUN_CERT} | hexdump -v -e '/1 "%02x"'`
1769: #
1770: CAROL_CERT="${DIR}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"
1771: CAROL_KEY="${CA_DIR}/keys/carolKey.der"
1772: CAROL_KEY_HEX=`cat ${CAROL_KEY} | hexdump -v -e '/1 "%02x"'`
1773: CAROL_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${CAROL_KEY}`
1774: CAROL_PUB_HEX=`pki --pub --type rsa --in ${CAROL_KEY} | hexdump -v -e '/1 "%02x"'`
1775: CAROL_CERT_HEX=`openssl x509 -in ${CAROL_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1776: #
1777: DAVE_CERT="${DIR}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"
1778: DAVE_KEY="${CA_DIR}/keys/daveKey.der"
1779: DAVE_KEY_HEX=`cat ${DAVE_KEY} | hexdump -v -e '/1 "%02x"'`
1780: DAVE_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${DAVE_KEY}`
1781: DAVE_PUB_HEX=`pki --pub --type rsa --in ${DAVE_KEY} | hexdump -v -e '/1 "%02x"'`
1782: DAVE_CERT_HEX=`openssl x509 -in ${DAVE_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1783: #
1784: ALICE_CERT="${DIR}/hosts/alice/${SWANCTL_DIR}/x509/aliceCert.pem"
1785: ALICE_KEY="${CA_DIR}/keys/aliceKey.der"
1786: ALICE_KEY_HEX=`cat ${ALICE_KEY} | hexdump -v -e '/1 "%02x"'`
1787: ALICE_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${ALICE_KEY}`
1788: ALICE_CERT_HEX=`openssl x509 -in ${ALICE_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1789: #
1790: VENUS_CERT="${DIR}/hosts/venus/${SWANCTL_DIR}/x509/venusCert.pem"
1791: VENUS_KEY="${CA_DIR}/keys/venusKey.der"
1792: VENUS_KEY_HEX=`cat ${VENUS_KEY} | hexdump -v -e '/1 "%02x"'`
1793: VENUS_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${VENUS_KEY}`
1794: VENUS_CERT_HEX=`openssl x509 -in ${VENUS_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1795: #
1796: RESEARCH_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${RESEARCH_KEY}`
1797: RESEARCH_SPKI_HEX=`pki --keyid --type rsa --format hex --id spki --in ${RESEARCH_KEY}`
1798: RESEARCH_CERT_HEX=`cat ${RESEARCH_CERT_DER} | hexdump -v -e '/1 "%02x"'`
1799: #
1800: CAROL_R_CERT="${RESEARCH_DIR}/certs/01.pem"
1801: CAROL_R_KEY="${RESEARCH_DIR}/keys/01.der"
1802: CAROL_R_KEY_HEX=`cat ${CAROL_R_KEY} | hexdump -v -e '/1 "%02x"'`
1803: CAROL_R_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${CAROL_R_KEY}`
1804: CAROL_R_CERT_HEX=`openssl x509 -in ${CAROL_R_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1805: #
1806: SALES_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${SALES_KEY}`
1807: SALES_SPKI_HEX=`pki --keyid --type rsa --format hex --id spki --in ${SALES_KEY}`
1808: SALES_CERT_HEX=`cat ${SALES_CERT_DER} | hexdump -v -e '/1 "%02x"'`
1809: #
1810: DAVE_S_CERT="${SALES_DIR}/certs/01.pem"
1811: DAVE_S_KEY="${SALES_DIR}/keys/01.der"
1812: DAVE_S_KEY_HEX=`cat ${DAVE_S_KEY} | hexdump -v -e '/1 "%02x"'`
1813: DAVE_S_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${DAVE_S_KEY}`
1814: DAVE_S_CERT_HEX=`openssl x509 -in ${DAVE_S_CERT} -outform der | hexdump -v -e '/1 "%02x"'`
1815: #
1816: for t in ip-pool-db ip-pool-db-expired ip-pool-db-restart ip-split-pools-db \
1817: ip-split-pools-db-restart multi-level-ca rw-cert rw-psk-rsa-split \
1818: rw-psk-ipv4 rw-psk-ipv6 rw-rsa rw-rsa-keyid
1819: do
1820: for h in carol dave moon
1821: do
1822: TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"
1823: sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \
1824: -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \
1825: -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \
1826: -e "s/MOON_KEY_HEX/${MOON_KEY_HEX}/g" \
1827: -e "s/MOON_SPK_HEX/${MOON_SPK_HEX}/g" \
1828: -e "s/MOON_PUB_HEX/${MOON_PUB_HEX}/g" \
1829: -e "s/MOON_CERT_HEX/${MOON_CERT_HEX}/g" \
1830: -e "s/CAROL_KEY_HEX/${CAROL_KEY_HEX}/g" \
1831: -e "s/CAROL_SPK_HEX/${CAROL_SPK_HEX}/g" \
1832: -e "s/CAROL_PUB_HEX/${CAROL_PUB_HEX}/g" \
1833: -e "s/CAROL_CERT_HEX/${CAROL_CERT_HEX}/g" \
1834: -e "s/DAVE_KEY_HEX/${DAVE_KEY_HEX}/g" \
1835: -e "s/DAVE_SPK_HEX/${DAVE_SPK_HEX}/g" \
1836: -e "s/DAVE_PUB_HEX/${DAVE_PUB_HEX}/g" \
1837: -e "s/DAVE_CERT_HEX/${DAVE_CERT_HEX}/g" \
1838: -e "s/RESEARCH_SPK_HEX/${RESEARCH_SPK_HEX}/g" \
1839: -e "s/RESEARCH_SPKI_HEX/${RESEARCH_SPKI_HEX}/g" \
1840: -e "s/RESEARCH_CERT_HEX/${RESEARCH_CERT_HEX}/g" \
1841: -e "s/CAROL_R_KEY_HEX/${CAROL_R_KEY_HEX}/g" \
1842: -e "s/CAROL_R_SPK_HEX/${CAROL_R_SPK_HEX}/g" \
1843: -e "s/CAROL_R_CERT_HEX/${CAROL_R_CERT_HEX}/g" \
1844: -e "s/SALES_SPK_HEX/${SALES_SPK_HEX}/g" \
1845: -e "s/SALES_SPKI_HEX/${SALES_SPKI_HEX}/g" \
1846: -e "s/SALES_CERT_HEX/${SALES_CERT_HEX}/g" \
1847: -e "s/DAVE_S_KEY_HEX/${DAVE_S_KEY_HEX}/g" \
1848: -e "s/DAVE_S_SPK_HEX/${DAVE_S_SPK_HEX}/g" \
1849: -e "s/DAVE_S_CERT_HEX/${DAVE_S_CERT_HEX}/g" \
1850: ${TEST_DATA}.in > ${TEST_DATA}
1851: done
1852: done
1853: #
1854: for t in rw-eap-aka-rsa
1855: do
1856: for h in carol moon
1857: do
1858: TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"
1859: sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \
1860: -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \
1861: -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \
1862: -e "s/MOON_KEY_HEX/${MOON_KEY_HEX}/g" \
1863: -e "s/MOON_SPK_HEX/${MOON_SPK_HEX}/g" \
1864: -e "s/MOON_CERT_HEX/${MOON_CERT_HEX}/g" \
1865: ${TEST_DATA}.in > ${TEST_DATA}
1866: done
1867: done
1868: #
1869: for t in net2net-cert net2net-psk net2net-route-pem net2net-start-pem
1870: do
1871: for h in moon sun
1872: do
1873: TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"
1874: sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \
1875: -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \
1876: -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \
1877: -e "s/CA_CERT_PEM_HEX/${CA_CERT_PEM_HEX}/g" \
1878: -e "s/MOON_KEY_PEM_HEX/${MOON_KEY_PEM_HEX}/g" \
1879: -e "s/MOON_KEY_HEX/${MOON_KEY_HEX}/g" \
1880: -e "s/MOON_SPK_HEX/${MOON_SPK_HEX}/g" \
1881: -e "s/MOON_CERT_HEX/${MOON_CERT_HEX}/g" \
1882: -e "s/MOON_CERT_PEM_HEX/${MOON_CERT_PEM_HEX}/g" \
1883: -e "s/SUN_KEY_PEM_HEX/${SUN_KEY_PEM_HEX}/g" \
1884: -e "s/SUN_KEY_HEX/${SUN_KEY_HEX}/g" \
1885: -e "s/SUN_SPK_HEX/${SUN_SPK_HEX}/g" \
1886: -e "s/SUN_CERT_HEX/${SUN_CERT_HEX}/g" \
1887: -e "s/SUN_CERT_PEM_HEX/${SUN_CERT_PEM_HEX}/g" \
1888: ${TEST_DATA}.in > ${TEST_DATA}
1889: done
1890: done
1891: #
1892: for t in shunt-policies-nat-rw
1893: do
1894: for h in alice venus sun
1895: do
1896: TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"
1897: sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \
1898: -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \
1899: -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \
1900: -e "s/ALICE_KEY_HEX/${ALICE_KEY_HEX}/g" \
1901: -e "s/ALICE_SPK_HEX/${ALICE_SPK_HEX}/g" \
1902: -e "s/ALICE_CERT_HEX/${ALICE_CERT_HEX}/g" \
1903: -e "s/VENUS_KEY_HEX/${VENUS_KEY_HEX}/g" \
1904: -e "s/VENUS_SPK_HEX/${VENUS_SPK_HEX}/g" \
1905: -e "s/VENUS_CERT_HEX/${VENUS_CERT_HEX}/g" \
1906: -e "s/SUN_KEY_HEX/${SUN_KEY_HEX}/g" \
1907: -e "s/SUN_SPK_HEX/${SUN_SPK_HEX}/g" \
1908: -e "s/SUN_CERT_HEX/${SUN_CERT_HEX}/g" \
1909: ${TEST_DATA}.in > ${TEST_DATA}
1910: done
1911: done
1912:
1913: ################################################################################
1914: # Raw RSA keys #
1915: ################################################################################
1916:
1917: MOON_PUB_DNS=`pki --pub --type rsa --outform dnskey --in ${MOON_KEY}`
1918: #
1919: SUN_PUB_DNS=`pki --pub --type rsa --outform dnskey --in ${SUN_KEY}`
1920: #
1921: for h in moon sun
1922: do
1923: TEST_DATA="${TEST_DIR}/ikev2/net2net-rsa/hosts/${h}/etc/ipsec.conf"
1924: sed -e "s|MOON_PUB_DNS|${MOON_PUB_DNS}|g" \
1925: -e "s|SUN_PUB_DNS|${SUN_PUB_DNS}|g" \
1926: ${TEST_DATA}.in > ${TEST_DATA}
1927: done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>