| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913 | #!/bin/bashset -o errexitecho "Building certificates"# Disable leak detective when using pki as it produces warnings in tzsetexport LEAK_DETECTIVE_DISABLE=1# Determine testing directoryDIR="$(dirname `readlink -f $0`)/.."# Define some global variablesPROJECT="strongSwan Project"CA_DIR="${DIR}/hosts/winnetou/etc/ca"CA_KEY="${CA_DIR}/strongswanKey.pem"CA_CERT="${CA_DIR}/strongswanCert.pem"CA_CERT_DER="${CA_DIR}/strongswanCert.der"CA_CRL="${CA_DIR}/strongswan.crl"CA_LAST_CRL="${CA_DIR}/strongswan_last.crl"CA_CDP="http://crl.strongswan.org/strongswan.crl"CA_BASE_CDP="http://crl.strongswan.org/strongswan_base.crl"CA_OCSP="http://ocsp.strongswan.org:8880"#START=`date  -d "-2 day"    "+%d.%m.%y %T"`SH_END=`date -d "-1 day"    "+%d.%m.%y %T"`    #  1 dayCA_END=`date -d "+3651 day" "+%d.%m.%y %T"`    # 10 yearsIM_END=`date -d "+3286 day" "+%d.%m.%y %T"`    #  9 yearsEE_END=`date -d "+2920 day" "+%d.%m.%y %T"`    #  8 yearsSH_EXP=`date -d "-1 day"    "+%y%m%d%H%M%SZ"`  #  1 dayIM_EXP=`date -d "+3286 day" "+%y%m%d%H%M%SZ"`  #  9 yearsEE_EXP=`date -d "+2920 day" "+%y%m%d%H%M%SZ"`  #  8 yearsNOW=`date "+%y%m%d%H%M%SZ"`#RESEARCH_DIR="${CA_DIR}/research"RESEARCH_KEY="${RESEARCH_DIR}/researchKey.pem"RESEARCH_CERT="${RESEARCH_DIR}/researchCert.pem"RESEARCH_CERT_DER="${RESEARCH_DIR}/researchCert.der"RESEARCH_CDP="http://crl.strongswan.org/research.crl"#SALES_DIR="${CA_DIR}/sales"SALES_KEY="${SALES_DIR}/salesKey.pem"SALES_CERT="${SALES_DIR}/salesCert.pem"SALES_CERT_DER="${SALES_DIR}/salesCert.der"SALES_CDP="http://crl.strongswan.org/sales.crl"#DUCK_DIR="${CA_DIR}/duck"DUCK_KEY="${DUCK_DIR}/duckKey.pem"DUCK_CERT="${DUCK_DIR}/duckCert.pem"#ECDSA_DIR="${CA_DIR}/ecdsa"ECDSA_KEY="${ECDSA_DIR}/strongswanKey.pem"ECDSA_CERT="${ECDSA_DIR}/strongswanCert.pem"ECDSA_CDP="http://crl.strongswan.org/strongswan_ecdsa.crl"#RFC3779_DIR="${CA_DIR}/rfc3779"RFC3779_KEY="${RFC3779_DIR}/strongswanKey.pem"RFC3779_CERT="${RFC3779_DIR}/strongswanCert.pem"RFC3779_CDP="http://crl.strongswan.org/strongswan_rfc3779.crl"#SHA3_RSA_DIR="${CA_DIR}/sha3-rsa"SHA3_RSA_KEY="${SHA3_RSA_DIR}/strongswanKey.pem"SHA3_RSA_CERT="${SHA3_RSA_DIR}/strongswanCert.pem"SHA3_RSA_CDP="http://crl.strongswan.org/strongswan_sha3_rsa.crl"#ED25519_DIR="${CA_DIR}/ed25519"ED25519_KEY="${ED25519_DIR}/strongswanKey.pem"ED25519_CERT="${ED25519_DIR}/strongswanCert.pem"ED25519_CDP="http://crl.strongswan.org/strongswan_ed25519.crl"#MONSTER_DIR="${CA_DIR}/monster"MONSTER_KEY="${MONSTER_DIR}/strongswanKey.pem"MONSTER_CERT="${MONSTER_DIR}/strongswanCert.pem"MONSTER_CDP="http://crl.strongswan.org/strongswan_monster.crl"MONSTER_CA_RSA_SIZE="8192"MONSTER_EE_RSA_SIZE="4096"#BLISS_DIR="${CA_DIR}/bliss"BLISS_KEY="${BLISS_DIR}/strongswan_blissKey.der"BLISS_CERT="${BLISS_DIR}/strongswan_blissCert.der"BLISS_CDP="http://crl.strongswan.org/strongswan_bliss.crl"#RSA_SIZE="3072"IPSEC_DIR="etc/ipsec.d"SWANCTL_DIR="etc/swanctl"TKM_DIR="etc/tkm"HOSTS="carol dave moon sun alice venus bob"TEST_DIR="${DIR}/tests"# Create directoriesmkdir -p ${CA_DIR}/certsmkdir -p ${CA_DIR}/keysmkdir -p ${RESEARCH_DIR}/certsmkdir -p ${RESEARCH_DIR}/keysmkdir -p ${SALES_DIR}/certsmkdir -p ${SALES_DIR}/keysmkdir -p ${DUCK_DIR}/certsmkdir -p ${ECDSA_DIR}/certsmkdir -p ${RFC3779_DIR}/certsmkdir -p ${SHA3_RSA_DIR}/certsmkdir -p ${ED25519_DIR}/certsmkdir -p ${MONSTER_DIR}/certsmkdir -p ${BLISS_DIR}/certs################################################################################# strongSwan Root CA                                                           ################################################################################## Generate strongSwan Root CApki --gen  --type rsa --size ${RSA_SIZE} --outform pem > ${CA_KEY}pki --self --type rsa --in ${CA_KEY} --not-before "${START}" --not-after "${CA_END}" \    --ca --pathlen 1 --dn "C=CH, O=${PROJECT}, CN=strongSwan Root CA" \    --outform pem > ${CA_CERT}# Distribute strongSwan Root CA certificatefor h in ${HOSTS}do  HOST_DIR="${DIR}/hosts/${h}"  mkdir -p ${HOST_DIR}/${IPSEC_DIR}/cacerts  mkdir -p ${HOST_DIR}/${SWANCTL_DIR}/x509ca  cp ${CA_CERT} ${HOST_DIR}/${IPSEC_DIR}/cacerts  cp ${CA_CERT} ${HOST_DIR}/${SWANCTL_DIR}/x509cadone# Put a copy onto the alice FreeRADIUS servermkdir -p ${DIR}/hosts/alice/etc/raddb/certscp ${CA_CERT} ${DIR}/hosts/alice/etc/raddb/certs# Convert strongSwan Root CA certificate into DER formatopenssl x509 -in ${CA_CERT} -outform der -out ${CA_CERT_DER}# Generate a stale CRLpki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} \    --this-update "${START}" --lifetime 1 > ${CA_LAST_CRL}# Put a CRL copy into the ikev2/crl-ldap scenario to be used as a stale crlTEST="${TEST_DIR}/ikev2/crl-ldap"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/crlsmkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/crlscp ${CA_LAST_CRL} ${TEST}/hosts/carol/${IPSEC_DIR}/crls/stale.crlcp ${CA_LAST_CRL} ${TEST}/hosts/moon/${IPSEC_DIR}/crls/stale.crl# Generate host keysfor h in ${HOSTS}do  HOST_DIR="${DIR}/hosts/${h}"  HOST_KEY="${HOST_DIR}/${IPSEC_DIR}/private/${h}Key.pem"  mkdir -p ${HOST_DIR}/${IPSEC_DIR}/private  pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${HOST_KEY}  # Put a copy into swanctl directory tree  mkdir -p ${HOST_DIR}/${SWANCTL_DIR}/rsa  cp ${HOST_KEY} ${HOST_DIR}/${SWANCTL_DIR}/rsa  # Convert host key into DER format  openssl rsa -in ${HOST_KEY} -outform der -out ${CA_DIR}/keys/${h}Key.der \          2> /dev/nulldone# Put DER-encoded moon private key and Root CA certificate into tkm scenariosfor t in host2host-initiator host2host-responder host2host-xfrmproxy \         net2net-initiator net2net-xfrmproxy xfrmproxy-expire xfrmproxy-rekeydo  TEST="${TEST_DIR}/tkm/${t}"  mkdir -p ${TEST}/hosts/moon/${TKM_DIR}  cp ${CA_DIR}/keys/moonKey.der ${CA_CERT_DER} ${TEST}/hosts/moon/${TKM_DIR}done# Put DER_encoded sun private key and Root CA certificate into tkm scenariosTEST="${TEST_DIR}/tkm/multiple-clients"mkdir -p ${TEST}/hosts/sun/${TKM_DIR}cp ${CA_DIR}/keys/sunKey.der ${CA_CERT_DER} ${TEST}/hosts/sun/${TKM_DIR}# Convert moon private key into unencrypted PKCS#8 formatTEST="${TEST_DIR}/ikev2/rw-pkcs8"HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privateopenssl pkcs8 -in ${HOST_KEY} -nocrypt -topk8 -out ${TEST_KEY}# Convert carol private key into v1.5 DES encrypted PKCS#8 formatHOST_KEY="${DIR}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privateopenssl pkcs8 -in ${HOST_KEY} -nocrypt -topk8 -v1 PBE-MD5-DES \              -passout "pass:nH5ZQEWtku0RJEZ6" -out ${TEST_KEY}# Convert dave private key into v2.0 AES-128 encrypted PKCS#8 formatHOST_KEY="${DIR}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey.pem"mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/privateopenssl pkcs8 -in ${HOST_KEY} -nocrypt -topk8  -v2 aes128 \              -passout "pass:OJlNZBx+80dLh4wC6fw5LmBd" -out ${TEST_KEY}################################################################################# Public Key Extraction                                                        ################################################################################## Extract the raw moon public key for the swanctl/net2net-pubkey scenarioTEST="${TEST_DIR}/swanctl/net2net-pubkey"TEST_PUB="${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey/moonPub.pem"HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkeymkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/pubkeypki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}cp ${TEST_PUB} ${TEST}/hosts/sun/${SWANCTL_DIR}/pubkey# Put a copy into the  following ikev2 scenariosfor t in net2net-dnssec net2net-pubkey rw-dnssecdo  TEST="${TEST_DIR}/ikev2/${t}"  mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certs  cp ${TEST_PUB} ${TEST}/hosts/moon/${IPSEC_DIR}/certsdone# Put a copy into the ikev2/net2net-pubkey scenarioTEST="${TEST_DIR}/ikev2/net2net-pubkey"mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certscp ${TEST_PUB} ${TEST}/hosts/sun/${IPSEC_DIR}/certs# Put a copy into the swanctl/rw-dnssec scenarioTEST="${TEST_DIR}/swanctl/rw-dnssec"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkeycp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey# Put a copy into the following swanctl scenariosfor t in rw-pubkey-anon rw-pubkey-keyiddo  TEST="${TEST_DIR}/swanctl/${t}"  for h in moon carol dave  do    mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/pubkey    cp ${TEST_PUB} ${TEST}/hosts/${h}/${SWANCTL_DIR}/pubkey  donedone# Extract the raw sun public key for the swanctl/net2net-pubkey scenarioTEST="${TEST_DIR}/swanctl/net2net-pubkey"TEST_PUB="${TEST}/hosts/sun/${SWANCTL_DIR}/pubkey/sunPub.pem"HOST_KEY="${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"pki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey# Put a copy into the ikev2/net2net-dnssec scenarioTEST="${TEST_DIR}/ikev2/net2net-dnssec"mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certscp ${TEST_PUB} ${TEST}/hosts/sun/${IPSEC_DIR}/certs# Put a copy into the ikev2/net2net-pubkey scenarioTEST="${TEST_DIR}/ikev2/net2net-pubkey"cp ${TEST_PUB} ${TEST}/hosts/moon/${IPSEC_DIR}/certscp ${TEST_PUB} ${TEST}/hosts/sun/${IPSEC_DIR}/certs# Put a copy into the swanctl/rw-pubkey-anon scenarioTEST="${TEST_DIR}/swanctl/rw-pubkey-anon"cp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey# Extract the raw carol public key for the swanctl/rw-dnssec scenarioTEST="${TEST_DIR}/swanctl/rw-dnssec"TEST_PUB="${TEST}/hosts/carol/${SWANCTL_DIR}/pubkey/carolPub.pem"HOST_KEY="${DIR}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/pubkeypki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}# Put a copy into the swanctl/rw-pubkey-anon scenarioTEST="${TEST_DIR}/swanctl/rw-pubkey-anon"cp ${TEST_PUB} ${TEST}/hosts/carol/${SWANCTL_DIR}/pubkeycp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey# Put a copy into the swanctl/rw-pubkey-keyid scenarioTEST="${TEST_DIR}/swanctl/rw-pubkey-keyid"cp ${TEST_PUB} ${TEST}/hosts/carol/${SWANCTL_DIR}/pubkeycp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey# Extract the raw dave public key for the swanctl/rw-dnssec scenarioTEST="${TEST_DIR}/swanctl/rw-dnssec"TEST_PUB="${TEST}/hosts/dave/${SWANCTL_DIR}/pubkey/davePub.pem"HOST_KEY="${DIR}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/pubkeypki --pub --type rsa --in ${HOST_KEY} --outform pem > ${TEST_PUB}# Put a copy into the swanctl/rw-pubkey-anon scenarioTEST="${TEST_DIR}/swanctl/rw-pubkey-anon"cp ${TEST_PUB} ${TEST}/hosts/dave/${SWANCTL_DIR}/pubkeycp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey# Put a copy into the swanctl/rw-pubkey-keyid scenarioTEST="${TEST_DIR}/swanctl/rw-pubkey-keyid"cp ${TEST_PUB} ${TEST}/hosts/dave/${SWANCTL_DIR}/pubkeycp ${TEST_PUB} ${TEST}/hosts/moon/${SWANCTL_DIR}/pubkey################################################################################# Host Certificate Generation                                                  ################################################################################## function issue_cert: serial host cn [ou]issue_cert(){  # does optional OU argument exist?  if [ -z "${4}" ]  then    OU=""  else    OU=" OU=${4},"  fi  HOST_DIR="${DIR}/hosts/${2}"  HOST_KEY="${HOST_DIR}/${IPSEC_DIR}/private/${2}Key.pem"  HOST_CERT="${HOST_DIR}/${IPSEC_DIR}/certs/${2}Cert.pem"  mkdir -p ${HOST_DIR}/${IPSEC_DIR}/certs  pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \      --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${3} \      --serial ${1} --dn "C=CH, O=${PROJECT},${OU} CN=${3}" \      --outform pem > ${HOST_CERT}  cp ${HOST_CERT} ${CA_DIR}/certs/${1}.pem  # Put a certificate copy into swanctl directory tree  mkdir -p ${HOST_DIR}/${SWANCTL_DIR}/x509  cp ${HOST_CERT} ${HOST_DIR}/${SWANCTL_DIR}/x509}# Generate host certificatesissue_cert 01 carol carol@strongswan.org Researchissue_cert 02 dave dave@strongswan.org Accountingissue_cert 03 moon moon.strongswan.orgissue_cert 04 sun sun.strongswan.orgissue_cert 05 alice alice@strongswan.org Salesissue_cert 06 venus venus.strongswan.orgissue_cert 07 bob bob@strongswan.org Research# Create PKCS#12 file for moonTEST="${TEST_DIR}/ikev2/net2net-pkcs12"HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"HOST_CERT="${DIR}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"MOON_PKCS12="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonCert.p12"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privateopenssl pkcs12 -export -inkey ${HOST_KEY} -in ${HOST_CERT} -name "moon" \        -certfile ${CA_CERT} -caname "strongSwan Root CA" \        -aes128 -passout "pass:kUqd8O7mzbjXNJKQ" > ${MOON_PKCS12} 2> /dev/null# Create PKCS#12 file for sunHOST_KEY="${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"HOST_CERT="${DIR}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"SUN_PKCS12="${TEST}/hosts/sun/${IPSEC_DIR}/private/sunCert.p12"mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/privateopenssl pkcs12 -export -inkey ${HOST_KEY} -in ${HOST_CERT} -name "sun" \        -certfile ${CA_CERT} -caname "strongSwan Root CA" \        -aes128 -passout "pass:IxjQVCF3JGI+MoPi" > ${SUN_PKCS12} 2> /dev/null# Put a PKCS#12 copy into the botan/net2net-pkcs12 scenariofor t in botan/net2net-pkcs12 openssl-ikev2/net2net-pkcs12do  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs12  mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs12  cp ${MOON_PKCS12} ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs12  cp ${SUN_PKCS12}  ${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs12done################################################################################# DNSSEC Zone Files                                                            ################################################################################## Store moon and sun certificates in strongswan.org zoneZONE_FILE="${CA_DIR}/db.strongswan.org.certs-and-keys"echo "; Automatically generated for inclusion in zone file" > ${ZONE_FILE}for h in moon sundo  HOST_CERT=${DIR}/hosts/${h}/${SWANCTL_DIR}/x509/${h}Cert.pem  cert=$(grep --invert-match ^----- ${HOST_CERT}| sed -e 's/^/\t\t\t\t/')  echo -e "${h}\tIN\tCERT\t( 1 0 0\n${cert}\n\t\t\t\t)" >> ${ZONE_FILE}done# Store public keys in strongswan.org zoneecho ";" >> ${ZONE_FILE}for h in moon sun carol davedo  HOST_CERT=${DIR}/hosts/${h}/${SWANCTL_DIR}/x509/${h}Cert.pem  pubkey=$(pki --pub --type x509 --in ${HOST_CERT} --outform dnskey | sed 's/\(.\{0,64\}\)/\t\t\t\t\1\n/g')  echo -e "${h}\tIN\tIPSECKEY\t( 10 3 2 ${h}.strongswan.org.\n${pubkey}\n\t\t\t\t)" >> ${ZONE_FILE}done# Generate a carol certificate for the swanctl/crl-to-cache scenario with base CDPTEST="${TEST_DIR}/swanctl/crl-to-cache"TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"HOST_KEY="${DIR}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"CN="carol@strongswan.org"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_BASE_CDP} --type rsa \    --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial 01 --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \    --outform pem > ${TEST_CERT}# Generate a moon certificate for the swanctl/crl-to-cache scenario with base CDPTEST_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"HOST_KEY="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"CN="moon.strongswan.org"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_BASE_CDP} --type rsa \    --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial 03 --dn "C=CH, O=${PROJECT}, CN=${CN}" \    --outform pem > ${TEST_CERT}# Encrypt carolKey.pemHOST_KEY="${DIR}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"KEY_PWD="nH5ZQEWtku0RJEZ6"openssl rsa -in ${HOST_KEY} -aes128 --passout pass:${KEY_PWD} -out ${HOST_KEY} \        2> /dev/null# Put a copy into the ikev2/dynamic-initiator scenariofor t in ikev2/dynamic-initiator ikev1/dynamic-initiator ikev1/dynamic-responderdo  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private  mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs  cp ${HOST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private  cp ${CA_DIR}/certs/01.pem ${TEST}/hosts/dave/${IPSEC_DIR}/certs/carolCert.pemdone# Put a copy into the swanctl/rw-cert scenarioTEST="${TEST_DIR}/swanctl/rw-cert"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsacp ${HOST_KEY} ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa# Generate another carol certificate and revoke itTEST="${TEST_DIR}/ikev2/crl-revoked"TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"CN="carol@strongswan.org"SERIAL="08"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pempki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} --reason "key-compromise" \    --serial ${SERIAL} > ${CA_CRL}cp ${CA_CRL} ${CA_LAST_CRL}# Put a copy into the ikev2/ocsp-revoked scenarioTEST="${TEST_DIR}/ikev2/ocsp-revoked"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certscp ${TEST_KEY}  ${TEST}/hosts/carol/${IPSEC_DIR}/privatecp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs# Generate another carol certificate with SN=002TEST="${TEST_DIR}/ikev2/two-certs"TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey-002.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert-002.pem"SERIAL="09"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, SN=002, CN=${CN}" \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem################################################################################# Research CA Certificate Generation                                           ################################################################################## Generate a Research CA certificate signed by the Root CA and revoke itTEST="${TEST_DIR}/ikev2/multi-level-ca-revoked"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/researchCert.pem"SERIAL="0A"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${RESEARCH_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pempki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} --reason "ca-compromise" \    --serial ${SERIAL} --lastcrl ${CA_LAST_CRL} > ${CA_CRL}rm ${CA_LAST_CRL}# Generate Research CA with the same private key as above signed by Root CASERIAL="0B"pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \    --outform pem > ${RESEARCH_CERT}cp ${RESEARCH_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a certificate copy into the following scenariosfor t in ikev1/multi-level-ca ikev2/multi-level-ca ikev2/multi-level-ca-ldap \         ikev2/multi-level-ca-pathlen ikev2/multi-level-ca-strict \         ikev2/ocsp-multi-level ikev2/ocsp-strict-ifurido  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts  cp ${RESEARCH_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacertsdonefor t in ikev1/multi-level-ca-cr-init ikev1/multi-level-ca-cr-resp \         ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-respdo  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/cacerts  cp ${RESEARCH_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/cacertsdonefor t in multi-level-ca ocsp-multi-leveldo  TEST="${TEST_DIR}/swanctl/${t}"  mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca  cp ${RESEARCH_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cadone# Convert Research CA certificate into DER formatopenssl x509 -in ${RESEARCH_CERT} -outform der -out ${RESEARCH_CERT_DER}# Generate Research CA with the same private key as above but invalid CDPTEST="${TEST_DIR}/ikev2/multi-level-ca-skipped"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/researchCert.pem"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacertspki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --type rsa \    --crl "http://crl.strongswan.org/not-available.crl" \    --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \    --outform pem > ${TEST_CERT}################################################################################# Sales CA Certificate Generation                                              ################################################################################## Generate Sales CA signed by Root CASERIAL="0C"pki --gen  --type rsa --size ${RSA_SIZE} --outform pem > ${SALES_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${SALES_KEY} --not-before "${START}" --not-after "${IM_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=Sales CA" \    --outform pem > ${SALES_CERT}cp ${SALES_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a certificate copy into the following scenariosfor t in ikev1/multi-level-ca ikev2/multi-level-ca ikev2/multi-level-ca-ldap \         ikev2/multi-level-ca-strict ikev2/ocsp-multi-level \         ikev2/ocsp-multi-level ikev2/ocsp-strict-ifurido  TEST="${TEST_DIR}/${t}"  cp ${SALES_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacertsdonefor t in ikev1/multi-level-ca-cr-init ikev1/multi-level-ca-cr-resp \         ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-respdo  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/cacerts  cp ${SALES_CERT} ${TEST}/hosts/dave/${IPSEC_DIR}/cacertsdonefor t in multi-level-ca ocsp-multi-leveldo  TEST="${TEST_DIR}/swanctl/${t}"  cp ${SALES_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cadone# Convert Sales CA certificate into DER formatopenssl x509 -in ${SALES_CERT} -outform der -out ${SALES_CERT_DER}# Generate an AES-128 encrypted moon key and a SHA-224 hashed certificateTEST="${TEST_DIR}/ikev2/strong-keys-certs"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey-aes128.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert-sha224.pem"KEY_PWD="gOQHdrSWeFuiZtYPetWuyzHW"CN="moon.strongswan.org"SERIAL="0D"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-224, CN=${CN}" \    --digest sha224 --outform pem > ${TEST_CERT}openssl rsa -in ${TEST_KEY} -aes128 --passout pass:${KEY_PWD} -out ${TEST_KEY} \        2> /dev/nullcp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate an AES-192 encrypted carol key and a SHA-384 hashed certificateTEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey-aes192.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert-sha384.pem"KEY_PWD="ITP/H4lSHqGpUGmCpgNDklbzTNV+swjA"CN="carol@strongswan.org"SERIAL="0E"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-384, CN=${CN}" \    --digest sha384 --outform pem > ${TEST_CERT}openssl rsa -in ${TEST_KEY} -aes192 --passout pass:${KEY_PWD} -out ${TEST_KEY} \        2> /dev/nullcp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate an AES-256 encrypted dave key and a SHA-512 hashed certificateTEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey-aes256.pem"TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert-sha512.pem"KEY_PWD="MeFnDN7VUbj+qU/bkgRIFvbCketIk2wrrs5Ii8297N2v"CN="dave@strongswan.org"SERIAL="0F"mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-512, CN=${CN}" \    --digest sha512 --outform pem > ${TEST_CERT}openssl rsa -in ${TEST_KEY} -aes256 --passout pass:${KEY_PWD} -out ${TEST_KEY} \        2> /dev/nullcp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate another carol certificate with an OCSP URITEST="${TEST_DIR}/ikev2/ocsp-signer-cert"TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"CN="carol@strongswan.org"SERIAL="10"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=OCSP, CN=${CN}" \    --ocsp ${CA_OCSP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a copy into the ikev2/ocsp-timeouts-good scenarioTEST="${TEST_DIR}/ikev2/ocsp-timeouts-good"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certscp ${TEST_KEY}  ${TEST}/hosts/carol/${IPSEC_DIR}/privatecp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs# Put a copy into the swanctl/ocsp-signer-cert scenariofor t in ocsp-signer-cert ocsp-disableddo  cd "${TEST_DIR}/swanctl/${t}/hosts/carol/${SWANCTL_DIR}"  mkdir -p rsa x509  cp ${TEST_KEY} rsa  cp ${TEST_CERT} x509done# Generate an OCSP Signing certificate for the strongSwan Root CATEST_KEY="${CA_DIR}/ocspKey.pem"TEST_CERT="${CA_DIR}/ocspCert.pem"CN="ocsp.strongswan.org"OU="OCSP Signing Authority"SERIAL="11"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \    --flag ocspSigning --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate a self-signed OCSP Signing certificateTEST_KEY="${CA_DIR}/ocspKey-self.pem"TEST_CERT="${CA_DIR}/ocspCert-self.pem"OU="OCSP Self-Signed Authority"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --self --type rsa --in ${TEST_KEY} --flag ocspSigning \    --not-before "${START}" --not-after "${CA_END}" --san ${CN} \    --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \    --outform pem > ${TEST_CERT}# Copy self-signed OCSP Signing certificate to ikev2/ocsp-local-cert scenarioTEST="${TEST_DIR}/ikev2/ocsp-local-cert"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/ocspcertsmkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/ocspcertscp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/ocspcertscp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/ocspcerts# Generate mars virtual server certificateTEST="${TEST_DIR}/ha/both-active"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/marsKey.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/marsCert.pem"CN="mars.strongswan.org"OU="Virtual VPN Gateway"SERIAL="12"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \    --flag serverAuth --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a copy into the mirrored gatewaymkdir -p ${TEST}/hosts/alice/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/alice/${IPSEC_DIR}/certscp ${TEST_KEY}  ${TEST}/hosts/alice/${IPSEC_DIR}/privatecp ${TEST_CERT} ${TEST}/hosts/alice/${IPSEC_DIR}/certs# Put a copy into the ha/active-passive and ikev2-redirect-active scenariosfor t in "ha/active-passive" "ikev2/redirect-active"do  TEST="${TEST_DIR}/${t}"  for h in alice moon  do    mkdir -p ${TEST}/hosts/${h}/${IPSEC_DIR}/private    mkdir -p ${TEST}/hosts/${h}/${IPSEC_DIR}/certs    cp ${TEST_KEY}  ${TEST}/hosts/${h}/${IPSEC_DIR}/private    cp ${TEST_CERT} ${TEST}/hosts/${h}/${IPSEC_DIR}/certs  donedone# Generate moon certificate with an unsupported critical X.509 extensionTEST="${TEST_DIR}/ikev2/critical-extension"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.pem"CN="moon.strongswan.org"SERIAL="13"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Critical Extension, CN=${CN}" \    --critical 1.3.6.1.4.1.36906.1 --flag serverAuth \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a copy in the openssl-ikev2/critical extension scenarioTEST="${TEST_DIR}/openssl-ikev2/critical-extension"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cp ${TEST_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/rsacp ${TEST_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509# Generate sun certificate with an unsupported critical X.509 extensionTEST="${TEST_DIR}/ikev2/critical-extension"TEST_KEY="${TEST}/hosts/sun/${IPSEC_DIR}/private/sunKey.pem"TEST_CERT="${TEST}/hosts/sun/${IPSEC_DIR}/certs/sunCert.pem"CN="sun.strongswan.org"SERIAL="14"mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Critical Extension, CN=${CN}" \    --critical 1.3.6.1.4.1.36906.1 --flag serverAuth \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a copy in the openssl-ikev2/critical extension scenarioTEST="${TEST_DIR}/openssl-ikev2/critical-extension"mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509cp ${TEST_KEY} ${TEST}/hosts/sun/${SWANCTL_DIR}/rsacp ${TEST_CERT} ${TEST}/hosts/sun/${SWANCTL_DIR}/x509# Generate winnetou server certificateHOST_KEY="${CA_DIR}/winnetouKey.pem"HOST_CERT="${CA_DIR}/winnetouCert.pem"CN="winnetou.strongswan.org"SERIAL="15"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${HOST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${HOST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \    --flag serverAuth --outform pem > ${HOST_CERT}cp ${HOST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate AAA server certificateTEST="${TEST_DIR}/tnc/tnccs-20-pdp-eap"TEST_KEY="${TEST}/hosts/alice/${SWANCTL_DIR}/rsa/aaaKey.pem"TEST_CERT="${TEST}/hosts/alice/${SWANCTL_DIR}/x509/aaaCert.pem"CN="aaa.strongswan.org"SERIAL="16"cd "${TEST}/hosts/alice/${SWANCTL_DIR}"mkdir -p rsa x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \--in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \    --flag serverAuth --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Put a copy into various tnc scenariosfor t in tnccs-20-pdp-pt-tls tnccs-20-ev-pt-tls tnccs-20-hcd-eapdo  cd "${TEST_DIR}/tnc/${t}/hosts/alice/${SWANCTL_DIR}"  mkdir -p rsa x509  cp ${TEST_KEY}  rsa  cp ${TEST_CERT} x509done# Put a copy into the alice FreeRADIUS servercp ${TEST_KEY} ${TEST_CERT} ${DIR}/hosts/alice/etc/raddb/certs################################################################################# strongSwan Attribute Authority                                               ################################################################################## Generate Attritbute Authority certificateTEST="${TEST_DIR}/ikev2/acert-cached"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/aaKey.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/aacerts/aaCert.pem"CN="strongSwan Attribute Authority"SERIAL="17"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/aacertsmkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/acertspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${IM_END}" \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate carol's attribute certificate for sales and financeACERT="${TEST}/hosts/moon/${IPSEC_DIR}/acerts/carol-sales-finance.pem"pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \    --in ${CA_DIR}/certs/01.pem --group sales --group finance \    --not-before "${START}" --not-after "${EE_END}" --outform pem > ${ACERT}# Generate dave's expired attribute certificate for salesACERT="${TEST}/hosts/moon/${IPSEC_DIR}/acerts/dave-sales-expired.pem"pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \    --in ${CA_DIR}/certs/02.pem --group sales \    --not-before "${START}" --not-after "${SH_END}" --outform pem  > ${ACERT}# Generate dave's attribute certificate for marketingACERT_DM="${TEST}/hosts/moon/${IPSEC_DIR}/acerts/dave-marketing.pem"pki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \    --in ${CA_DIR}/certs/02.pem --group marketing \    --not-before "${SH_END}" --not-after "${EE_END}" --outform pem > ${ACERT_DM}# Put a copy into the ikev2/acert-fallback scenarioTEST="${TEST_DIR}/ikev2/acert-fallback"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/aacertsmkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/acertscp ${TEST_KEY}  ${TEST}/hosts/moon/${IPSEC_DIR}/privatecp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/aacerts# Generate carol's expired attribute certificate for financeACERT=${TEST}/hosts/carol/${IPSEC_DIR}/acerts/carol-finance-expired.pemmkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/acertspki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \    --in ${CA_DIR}/certs/01.pem --group finance \    --not-before "${START}" --not-after "${SH_END}" --outform pem  > ${ACERT}# Generate carol's valid attribute certificate for salesACERT_CS=${TEST}/hosts/carol/${IPSEC_DIR}/acerts/carol-sales.pempki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \    --in ${CA_DIR}/certs/01.pem --group sales \    --not-before "${SH_END}" --not-after "${EE_END}" --outform pem > ${ACERT_CS}# Put a copy into the ikev2/acert-inline scenarioTEST="${TEST_DIR}/ikev2/acert-inline"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/aacertsmkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/acertsmkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/acertscp ${TEST_KEY}  ${TEST}/hosts/moon/${IPSEC_DIR}/privatecp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/aacertscp ${ACERT_CS}  ${TEST}/hosts/carol/${IPSEC_DIR}/acertscp ${ACERT_DM}  ${TEST}/hosts/dave/${IPSEC_DIR}/acerts# Generate a short-lived Attritbute Authority certificateCN="strongSwan Legacy AA"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/aaKey-expired.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/aacerts/aaCert-expired.pem"SERIAL="18"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${CA_KEY} --cacert ${CA_CERT} --crl ${CA_CDP} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${SH_END}" \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, CN=${CN}" \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${CA_DIR}/certs/${SERIAL}.pem# Generate dave's attribute certificate for sales from expired AAACERT=${TEST}/hosts/dave/${IPSEC_DIR}/acerts/dave-expired-aa.pemmkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/acertspki --acert --issuerkey ${TEST_KEY} --issuercert ${TEST_CERT} \    --in ${CA_DIR}/certs/02.pem --group sales \    --not-before "${START}" --not-after "${EE_END}" --outform pem > ${ACERT}################################################################################# strongSwan Root CA index for OCSP server                                     ################################################################################## generate index.txt file for Root OCSP servercp ${CA_DIR}/index.txt.template ${CA_DIR}/index.txtsed -i -e "s/EE_EXPIRATION/${EE_EXP}/g" ${CA_DIR}/index.txtsed -i -e "s/IM_EXPIRATION/${IM_EXP}/g" ${CA_DIR}/index.txtsed -i -e "s/SH_EXPIRATION/${SH_EXP}/g" ${CA_DIR}/index.txtsed -i -e "s/REVOCATION/${NOW}/g" ${CA_DIR}/index.txt################################################################################# Research CA                                                                  ################################################################################## Generate a carol research certificateTEST="${TEST_DIR}/ikev2/multi-level-ca"TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"CN="carol@strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \    --crl ${RESEARCH_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem# Save a copy of the private key in DER formatopenssl rsa -in ${TEST_KEY} -outform der \            -out ${RESEARCH_DIR}/keys/${SERIAL}.der 2> /dev/null# Put a copy in the following scenariosfor t in ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-resp \         ikev2/multi-level-ca-ldap ikev2/multi-level-ca-loop \         ikev2/multi-level-ca-revoked ikev2/multi-level-ca-skipped \         ikev2/multi-level-ca-strict ikev2/ocsp-multi-level \         ikev1/multi-level-ca ikev1/multi-level-ca-cr-init \         ikev1/multi-level-ca-cr-respdo  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/private  mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certs  cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private  cp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certsdonefor t in multi-level-ca ocsp-multi-leveldo  TEST="${TEST_DIR}/swanctl/${t}"  mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa  mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509  cp ${TEST_KEY} ${TEST}/hosts/carol/${SWANCTL_DIR}/rsa  cp ${TEST_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509done# Generate a carol research certificate without a CDPTEST="${TEST_DIR}/ikev2/ocsp-strict-ifuri"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certsmkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatepki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=${CN}" \    --outform pem > ${TEST_CERT}cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private# Generate an OCSP Signing certificate for the Research CATEST_KEY="${RESEARCH_DIR}/ocspKey.pem"TEST_CERT="${RESEARCH_DIR}/ocspCert.pem"OU="Research OCSP Signing Authority"CN="ocsp.research.strongswan.org"SERIAL="02"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \    --crl ${RESEARCH_CDP} --flag ocspSigning --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem# Generate a Sales CA certificate signed by the Research CATEST="${TEST_DIR}/ikev2/multi-level-ca-loop"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/sales_by_researchCert.pem"SERIAL="03"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacertspki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \    --in ${SALES_KEY} --not-before "${START}" --not-after "${EE_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=Sales CA" \    --crl ${RESEARCH_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem################################################################################# Duck Research CA                                                                     ################################################################################## Generate a Duck Research CA certificate signed by the Research CASERIAL="04"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${DUCK_KEY}pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \    --in ${DUCK_KEY} --not-before "${START}" --not-after "${EE_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Duck Research CA" \    --crl ${RESEARCH_CDP} --outform pem > ${DUCK_CERT}cp ${DUCK_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem# Put a certificate copy in the ikev2/multilevel-ca-pathlen scenarioTEST="${TEST_DIR}/ikev2/multi-level-ca-pathlen"cp ${DUCK_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacerts# Generate a carol certificate signed by the Duck Research CATEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"CN="carol@strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${DUCK_KEY} --cacert ${DUCK_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Duck Research, CN=${CN}" \    --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${DUCK_DIR}/certs/${SERIAL}.pem# Generate index.txt file for Research OCSP servercp ${RESEARCH_DIR}/index.txt.template ${RESEARCH_DIR}/index.txtsed -i -e "s/EE_EXPIRATION/${EE_EXP}/g" ${RESEARCH_DIR}/index.txt################################################################################# Sales CA                                                                     ################################################################################## Generate a dave sales certificateTEST="${TEST_DIR}/ikev2/multi-level-ca"TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey.pem"TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert.pem"CN="dave@strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=${CN}" \    --crl ${SALES_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem# Save a copy of the private key in DER formatopenssl rsa -in ${TEST_KEY} -outform der \            -out ${SALES_DIR}/keys/${SERIAL}.der 2> /dev/null# Put a copy in the following scenariosfor t in ikev2/multi-level-ca-cr-init ikev2/multi-level-ca-cr-resp \         ikev2/multi-level-ca-ldap ikev2/multi-level-ca-strict \         ikev2/ocsp-multi-level ikev1/multi-level-ca \         ikev1/multi-level-ca-cr-init ikev1/multi-level-ca-cr-respdo  TEST="${TEST_DIR}/${t}"  mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/private  mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certs  cp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private  cp ${TEST_CERT} ${TEST}/hosts/dave/${IPSEC_DIR}/certsdonefor t in multi-level-ca ocsp-multi-leveldo  TEST="${TEST_DIR}/swanctl/${t}"  mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/rsa  mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509  cp ${TEST_KEY} ${TEST}/hosts/dave/${SWANCTL_DIR}/rsa  cp ${TEST_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509done# Generate a dave sales certificate with an inactive OCSP URI and no CDPTEST="${TEST_DIR}/ikev2/ocsp-strict-ifuri"TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert.pem"mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certsmkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/privatepki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Sales, CN=${CN}" \    --ocsp "http://ocsp2.strongswan.org:8882" --outform pem > ${TEST_CERT}cp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private# Generate an OCSP Signing certificate for the Sales CATEST_KEY="${SALES_DIR}/ocspKey.pem"TEST_CERT="${SALES_DIR}/ocspCert.pem"OU="Sales OCSP Signing Authority"CN="ocsp.sales.strongswan.org"SERIAL="02"pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=${OU}, CN=${CN}" \    --crl ${SALES_CDP} --flag ocspSigning --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem# Generate a Research CA certificate signed by the Sales CATEST="${TEST_DIR}/ikev2/multi-level-ca-loop"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/research_by_salesCert.pem"SERIAL="03"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacertspki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \    --in ${RESEARCH_KEY} --not-before "${START}" --not-after "${EE_END}" --ca \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Research, CN=Research CA" \    --crl ${SALES_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem# generate index.txt file for Sales OCSP servercp ${SALES_DIR}/index.txt.template ${SALES_DIR}/index.txtsed -i -e "s/EE_EXPIRATION/${EE_EXP}/g" ${SALES_DIR}/index.txt################################################################################# strongSwan EC Root CA                                                        ################################################################################## Generate strongSwan EC Root CApki --gen  --type ecdsa --size 521 --outform pem > ${ECDSA_KEY}pki --self --type ecdsa --in ${ECDSA_KEY} \    --not-before "${START}" --not-after "${CA_END}" --ca \    --dn "C=CH, O=${PROJECT}, CN=strongSwan EC Root CA" \    --outform pem > ${ECDSA_CERT}# Put a copy in the openssl-ikev2/ecdsa-certs scenariofor t in ecdsa-certs ecdsa-pkcs8do  TEST="${TEST_DIR}/openssl-ikev2/${t}"  for h in moon carol dave  do    mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca    cp ${ECDSA_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca  donedone# Generate a moon ECDSA 521 bit certificateTEST="${TEST_DIR}/openssl-ikev2/ecdsa-certs"MOON_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/ecdsa/moonKey.pem"MOON_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"CN="moon.strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/ecdsamkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509pki --gen --type ecdsa --size 521 --outform pem > ${MOON_KEY}pki --issue --cakey ${ECDSA_KEY} --cacert ${ECDSA_CERT} --type ecdsa \    --in ${MOON_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=ECDSA 512 bit, CN=${CN}" \    --crl ${ECDSA_CDP} --outform pem > ${MOON_CERT}cp ${MOON_CERT} ${ECDSA_DIR}/certs/${SERIAL}.pem# Generate a carol ECDSA 256 bit certificateCAROL_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/ecdsa/carolKey.pem"CAROL_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"CN="carol@strongswan.org"SERIAL="02"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/ecdsamkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509pki --gen --type ecdsa --size 256 --outform pem > ${CAROL_KEY}pki --issue --cakey ${ECDSA_KEY} --cacert ${ECDSA_CERT} --type ecdsa \    --in ${CAROL_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=ECDSA 256 bit, CN=${CN}" \    --crl ${ECDSA_CDP} --outform pem > ${CAROL_CERT}cp ${CAROL_CERT} ${ECDSA_DIR}/certs/${SERIAL}.pem# Generate a dave ECDSA 384 bit certificateDAVE_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/ecdsa/daveKey.pem"DAVE_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"CN="dave@strongswan.org"SERIAL="03"mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/ecdsamkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509pki --gen --type ecdsa --size 384 --outform pem > ${DAVE_KEY}pki --issue --cakey ${ECDSA_KEY} --cacert ${ECDSA_CERT} --type ecdsa \    --in ${DAVE_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=ECDSA 384 bit, CN=${CN}" \    --crl ${ECDSA_CDP} --outform pem > ${DAVE_CERT}cp ${DAVE_CERT} ${ECDSA_DIR}/certs/${SERIAL}.pem# Put CA and EE certificate copies in the openssl-ikev2/ecdsa-pkcs8 scenarioTEST="${TEST_DIR}/openssl-ikev2/ecdsa-pkcs8"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509cp ${MOON_CERT}  ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cp ${CAROL_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509cp ${DAVE_CERT}  ${TEST}/hosts/dave/${SWANCTL_DIR}/x509# Convert moon private key into unencrypted PKCS#8 formatTEST_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8/moonKey.pem"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8openssl pkcs8 -in ${MOON_KEY} -nocrypt -topk8 -out ${TEST_KEY}# Convert carol private key into v1.5 DES encrypted PKCS#8 formatTEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8/carolKey.pem"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8openssl pkcs8 -in ${CAROL_KEY} -nocrypt -topk8 -v1 PBE-MD5-DES \              -passout "pass:nH5ZQEWtku0RJEZ6" -out ${TEST_KEY}# Convert dave private key into v2.0 AES-128 encrypted PKCS#8 formatTEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8/daveKey.pem"mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8openssl pkcs8 -in ${DAVE_KEY} -nocrypt -topk8  -v2 aes128 \              -passout "pass:OJlNZBx+80dLh4wC6fw5LmBd" -out ${TEST_KEY}# Put CA and EE certificate copies in the openssl-ikev1/ecdsa-certs scenarioTEST="${TEST_DIR}/openssl-ikev1/ecdsa-certs"cd ${TEST}/hosts/moon/${SWANCTL_DIR}mkdir -p ecdsa x509 x509cacp ${MOON_KEY}   ecdsacp ${MOON_CERT}  x509cp ${ECDSA_CERT} x509cacd ${TEST}/hosts/carol/${SWANCTL_DIR}mkdir -p ecdsa x509 x509cacp ${CAROL_KEY}  ecdsacp ${CAROL_CERT} x509cp ${ECDSA_CERT} x509cacd ${TEST}/hosts/dave/${SWANCTL_DIR}mkdir -p ecdsa x509 x509cacp ${DAVE_KEY}   ecdsacp ${DAVE_CERT}  x509cp ${ECDSA_CERT} x509ca################################################################################# strongSwan RFC3779 Root CA                                                   ################################################################################## Generate strongSwan RFC3779 Root CApki --gen  --type rsa --size ${RSA_SIZE} --outform pem > ${RFC3779_KEY}pki --self --type rsa --in ${RFC3779_KEY} \    --not-before "${START}" --not-after "${CA_END}" --ca \    --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=strongSwan RFC3779 Root CA" \    --addrblock "10.1.0.0-10.2.255.255" \    --addrblock "10.3.0.1-10.3.3.232" \    --addrblock "192.168.0.0/24" \    --addrblock "fec0::-fec2:ffff:ffff:ffff:ffff:ffff:ffff:ffff" \    --outform pem > ${RFC3779_CERT}# Put a copy in the ikev2/net2net-rfc3779 scenarioTEST="${TEST_DIR}/ikev2/net2net-rfc3779"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacertsmkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/cacertscp ${RFC3779_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacertscp ${RFC3779_CERT} ${TEST}/hosts/sun/${IPSEC_DIR}/cacerts# Put a copy in the ipv6/rw-rfc3779-ikev2 scenarioTEST="${TEST_DIR}/ipv6/rw-rfc3779-ikev2"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509camkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509cacp ${RFC3779_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509cacp ${RFC3779_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509ca# Generate a moon RFC3779 certificateTEST="${TEST_DIR}/ikev2/net2net-rfc3779"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.pem"CN="moon.strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \    --addrblock "10.1.0.0/16" --addrblock "192.168.0.1/32" \    --addrblock "fec0::1/128" --addrblock "fec1::/16" \    --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem# Put a copy in the ipv6 scenariosfor t in net2net-rfc3779-ikev2 rw-rfc3779-ikev2do  cd "${TEST_DIR}/ipv6/${t}/hosts/moon/${SWANCTL_DIR}"  mkdir -p rsa x509 x509ca  cp ${TEST_KEY}  rsa  cp ${TEST_CERT} x509  cp ${RFC3779_CERT} x509cadone# Generate a sun RFC3779 certificateTEST="${TEST_DIR}/ikev2/net2net-rfc3779"TEST_KEY="${TEST}/hosts/sun/${IPSEC_DIR}/private/sunKey.pem"TEST_CERT="${TEST}/hosts/sun/${IPSEC_DIR}/certs/sunCert.pem"CN="sun.strongswan.org"SERIAL="02"mkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}/certspki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \    --addrblock "10.2.0.0/16" --addrblock "192.168.0.2/32" \    --addrblock "fec0::2/128" --addrblock "fec2::/16" \    --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem# Put a copy in the ipv6/net2net-rfc3779-ikev2 scenariocd "${TEST_DIR}/ipv6/net2net-rfc3779-ikev2/hosts/sun/${SWANCTL_DIR}"mkdir -p rsa x509 x509cacp ${TEST_KEY} rsacp ${TEST_CERT} x509cp ${RFC3779_CERT} x509ca# Generate a carol RFC3779 certificateTEST="${TEST_DIR}/ipv6/rw-rfc3779-ikev2"TEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"CN="carol@strongswan.org"SERIAL="03"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \    --addrblock "10.3.0.1/32" --addrblock "192.168.0.100/32" \    --addrblock "fec0::10/128" \    --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem# Generate a carol RFC3779 certificateTEST="${TEST_DIR}/ipv6/rw-rfc3779-ikev2"TEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"TEST_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"CN="dave@strongswan.org"SERIAL="04"mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${RFC3779_KEY} --cacert ${RFC3779_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=RFC3779, CN=${CN}" \    --addrblock "10.3.0.2/32" --addrblock "192.168.0.200/32" \    --addrblock "fec0::20/128" \    --crl ${RFC3779_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${RFC3779_DIR}/certs/${SERIAL}.pem################################################################################# strongSwan SHA3-RSA Root CA                                                  ################################################################################## Use specific plugin configuration to issue certificates with SHA-3 signatures# as not all crypto plugins support them.  To avoid entropy issues use the# default plugins to generate the keys.SHA3_PKI_PLUGINS="gmp pem pkcs1 random sha1 sha3 x509"# Generate strongSwan SHA3-RSA Root CApki --gen  --type rsa --size ${RSA_SIZE} --outform pem > ${SHA3_RSA_KEY}PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \pki --self --type rsa --in ${SHA3_RSA_KEY} --digest sha3_256 \    --not-before "${START}" --not-after "${CA_END}" --ca \    --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=strongSwan Root CA" \    --outform pem > ${SHA3_RSA_CERT}# Put a copy in the swanctl/net2net-sha3-rsa-cert scenarioTEST="${TEST_DIR}/swanctl/net2net-sha3-rsa-cert"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509camkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509cacp ${SHA3_RSA_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cacp ${SHA3_RSA_CERT} ${TEST}/hosts/sun/${SWANCTL_DIR}/x509ca# Generate a sun SHA3-RSA certificateSUN_KEY="${TEST}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"SUN_CERT="${TEST}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"CN="sun.strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${SUN_KEY}PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \    --in ${SUN_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \    --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${SUN_CERT}cp ${SUN_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem# Generate a moon SHA3-RSA certificateMOON_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"MOON_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"CN="moon.strongswan.org"SERIAL="02"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${MOON_KEY}PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \    --in ${MOON_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \    --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${MOON_CERT}cp ${MOON_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem# Put a copy in the botan/net2net-sha3-rsa-cert scenarioTEST="${TEST_DIR}/botan/net2net-sha3-rsa-cert"cd ${TEST}/hosts/moon/${SWANCTL_DIR}mkdir -p rsa x509 x509cacp ${MOON_KEY}      rsacp ${MOON_CERT}     x509cp ${SHA3_RSA_CERT} x509cacd ${TEST}/hosts/sun/${SWANCTL_DIR}mkdir -p rsa x509 x509cacp ${SUN_KEY}       rsacp ${SUN_CERT}      x509cp ${SHA3_RSA_CERT} x509ca# Put a copy in the swanctl/rw-eap-tls-sha3-rsa scenarioTEST="${TEST_DIR}/swanctl/rw-eap-tls-sha3-rsa"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cp ${MOON_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/rsacp ${MOON_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509# Generate a carol SHA3-RSA certificateTEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/rsa/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"CN="carol@strongswan.org"SERIAL="03"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \    --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pem# Generate a dave SHA3-RSA certificateTEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/rsa/daveKey.pem"TEST_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"CN="dave@strongswan.org"SERIAL="04"mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/rsamkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509pki --gen --type rsa --size ${RSA_SIZE} --outform pem > ${TEST_KEY}PKI_PLUGINS="${SHA3_PKI_PLUGINS}" \pki --issue --cakey ${SHA3_RSA_KEY} --cacert ${SHA3_RSA_CERT} --type rsa \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=SHA-3, CN=${CN}" \    --crl ${SHA3_RSA_CDP} --digest sha3_256 --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${SHA3_RSA_DIR}/certs/${SERIAL}.pemfor h in moon carol davedo  mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca  cp ${SHA3_RSA_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509cadone################################################################################# strongSwan Ed25519 Root CA                                                   ################################################################################## Generate strongSwan Ed25519 Root CApki --gen  --type ed25519 --outform pem > ${ED25519_KEY}pki --self --type ed25519 --in ${ED25519_KEY} \    --not-before "${START}" --not-after "${CA_END}" --ca \    --dn "C=CH, O=${PROJECT}, CN=strongSwan Ed25519 Root CA" \    --cert-policy "1.3.6.1.4.1.36906.1.1.1" \    --cert-policy "1.3.6.1.4.1.36906.1.1.2" \    --outform pem > ${ED25519_CERT}# Put a copy in the swanctl/net2net-ed25519 scenarioTEST="${TEST_DIR}/swanctl/net2net-ed25519"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509camkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509cacp ${ED25519_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cacp ${ED25519_CERT} ${TEST}/hosts/sun/${SWANCTL_DIR}/x509ca# Generate a sun Ed25519 certificateSUN_KEY="${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs8/sunKey.pem"SUN_CERT="${TEST}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"CN="sun.strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/pkcs8mkdir -p ${TEST}/hosts/sun/${SWANCTL_DIR}/x509pki --gen --type ed25519 --outform pem > ${SUN_KEY}pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \    --in ${SUN_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \    --cert-policy "1.3.6.1.4.1.36906.1.1.2" --flag "serverAuth" \    --crl ${ED25519_CDP} --outform pem > ${SUN_CERT}cp ${SUN_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem# Generate a moon Ed25519 certificateMOON_KEY="${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8/moonKey.pem"MOON_CERT="${TEST}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"CN="moon.strongswan.org"SERIAL="02"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509pki --gen --type ed25519 --outform pem > ${MOON_KEY}pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \    --in ${MOON_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \    --cert-policy "1.3.6.1.4.1.36906.1.1.1" --flag "serverAuth" \    --crl ${ED25519_CDP} --outform pem > ${MOON_CERT}cp ${MOON_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem# Put a copy in the botan/net2net-ed25519 scenarioTEST="${TEST_DIR}/botan/net2net-ed25519"cd ${TEST}/hosts/moon/${SWANCTL_DIR}mkdir -p pkcs8 x509 x509cacp ${MOON_KEY}     pkcs8cp ${MOON_CERT}    x509cp ${ED25519_CERT} x509cacd ${TEST}/hosts/sun/${SWANCTL_DIR}mkdir -p pkcs8 x509 x509cacp ${SUN_KEY}      pkcs8cp ${SUN_CERT}     x509cp ${ED25519_CERT} x509ca# Put a copy in the ikev2/net2net-ed25519 scenarioTEST="${TEST_DIR}/ikev2/net2net-ed25519"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}cd ${TEST}/hosts/moon/${IPSEC_DIR}mkdir -p cacerts certs privatecp ${MOON_KEY}     privatecp ${MOON_CERT}    certscp ${ED25519_CERT} cacertsmkdir -p ${TEST}/hosts/sun/${IPSEC_DIR}cd ${TEST}/hosts/sun/${IPSEC_DIR}mkdir -p cacerts certs privatecp ${SUN_KEY}      privatecp ${SUN_CERT}     certscp ${ED25519_CERT} cacerts# Put a copy in the swanctl/rw-ed25519-certpol scenarioTEST="${TEST_DIR}/swanctl/rw-ed25519-certpol"mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509cp ${MOON_KEY}  ${TEST}/hosts/moon/${SWANCTL_DIR}/pkcs8cp ${MOON_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509for h in moon carol davedo  mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca  cp ${ED25519_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509cadone# Generate a carol Ed25519 certificateTEST_KEY="${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"CN="carol@strongswan.org"SERIAL="03"mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/pkcs8mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509pki --gen --type ed25519 --outform pem > ${TEST_KEY}pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \    --cert-policy "1.3.6.1.4.1.36906.1.1.1" --flag "clientAuth" \    --crl ${ED25519_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem# Generate a dave Ed25519 certificateTEST_KEY="${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8/daveKey.pem"TEST_CERT="${TEST}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"CN="dave@strongswan.org"SERIAL="04"mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/pkcs8mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509pki --gen --type ed25519 --outform pem > ${TEST_KEY}pki --issue --cakey ${ED25519_KEY} --cacert ${ED25519_CERT} --type ed25519 \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Ed25519, CN=${CN}" \    --cert-policy "1.3.6.1.4.1.36906.1.1.2" --flag "clientAuth" \    --crl ${ED25519_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${ED25519_DIR}/certs/${SERIAL}.pem################################################################################# strongSwan Monster Root CA                                                   ################################################################################## Generate strongSwan Monster Root CApki --gen  --type rsa --size ${MONSTER_CA_RSA_SIZE} --outform pem > ${MONSTER_KEY}pki --self --type rsa --in ${MONSTER_KEY} \    --not-before "01.05.09 15:00:00" --not-after "01.05.59 15:00:00" --ca \    --dn "C=CH, O=${PROJECT}, CN=strongSwan Monster CA" \    --outform pem > ${MONSTER_CERT}# Put a copy in the ikev2/after-2038-certs scenarioTEST="${TEST_DIR}/ikev2/after-2038-certs"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/cacertsmkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/cacertscp ${MONSTER_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/cacertscp ${MONSTER_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/cacerts# Generate a moon Monster certificateTEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.pem"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.pem"CN="moon.strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certspki --gen --type rsa --size ${MONSTER_EE_RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${MONSTER_KEY} --cacert ${MONSTER_CERT} --type rsa \    --in ${TEST_KEY} --san ${CN} \    --not-before "01.05.09 15:00:00" --not-after "01.05.39 15:00:00" - \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Monster, CN=${CN}" \    --crl ${MONSTER_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${MONSTER_DIR}/certs/${SERIAL}.pem# Generate a carol Monster certificateTEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.pem"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.pem"CN="carol@strongswan.org"SERIAL="02"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type rsa --size ${MONSTER_EE_RSA_SIZE} --outform pem > ${TEST_KEY}pki --issue --cakey ${MONSTER_KEY} --cacert ${MONSTER_CERT} --type rsa \    --in ${TEST_KEY} --san ${CN} \    --not-before "01.05.09 15:00:00" --not-after "01.05.39 15:00:00" - \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=Monster, CN=${CN}" \    --crl ${MONSTER_CDP} --outform pem > ${TEST_CERT}cp ${TEST_CERT} ${MONSTER_DIR}/certs/${SERIAL}.pem################################################################################# Bliss CA                                                                     ################################################################################## Generate BLISS Root CA with 192 bit security strengthpki --gen  --type bliss --size 4 > ${BLISS_KEY}pki --self --type bliss --in ${BLISS_KEY} --digest sha3_512 \    --not-before "${START}" --not-after "${CA_END}" --ca \    --dn "C=CH, O=${PROJECT}, CN=strongSwan BLISS Root CA" > ${BLISS_CERT}# Put a copy in the following scenariosfor t in rw-newhope-bliss rw-ntru-blissdo  TEST="${TEST_DIR}/ikev2/${t}"  for h in moon carol dave  do    mkdir -p ${TEST}/hosts/${h}/${IPSEC_DIR}/cacerts    cp ${BLISS_CERT} ${TEST}/hosts/${h}/${IPSEC_DIR}/cacerts  done  TEST="${TEST_DIR}/swanctl/${t}"  for h in moon carol dave  do    mkdir -p ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca    cp ${BLISS_CERT} ${TEST}/hosts/${h}/${SWANCTL_DIR}/x509ca  donedone# Generate a carol BLISS certificate with 128 bit security strengthTEST="${TEST_DIR}/ikev2/rw-newhope-bliss"TEST_KEY="${TEST}/hosts/carol/${IPSEC_DIR}/private/carolKey.der"TEST_CERT="${TEST}/hosts/carol/${IPSEC_DIR}/certs/carolCert.der"CN="carol@strongswan.org"SERIAL="01"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certspki --gen --type bliss --size 1 > ${TEST_KEY}pki --issue --cakey ${BLISS_KEY} --cacert ${BLISS_CERT} --type bliss \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=BLISS I, CN=${CN}" \    --crl ${BLISS_CDP} --digest sha3_512 > ${TEST_CERT}cp ${TEST_CERT} ${BLISS_DIR}/certs/${SERIAL}.der# Put a copy in the ikev2/rw-ntru-bliss scenarioTEST="${TEST_DIR}/ikev2/rw-ntru-bliss"mkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/carol/${IPSEC_DIR}/certscp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/privatecp ${TEST_CERT} ${TEST}/hosts/carol/${IPSEC_DIR}/certs# Put a copy in the swanctl scenariosfor t in rw-newhope-bliss rw-ntru-blissdo  TEST="${TEST_DIR}/swanctl/${t}"  mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/bliss  mkdir -p ${TEST}/hosts/carol/${SWANCTL_DIR}/x509  cp ${TEST_KEY} ${TEST}/hosts/carol/${SWANCTL_DIR}/bliss  cp ${TEST_CERT} ${TEST}/hosts/carol/${SWANCTL_DIR}/x509done# Generate a dave BLISS certificate with 160 bit security strengthTEST="${TEST_DIR}/ikev2/rw-newhope-bliss"TEST_KEY="${TEST}/hosts/dave/${IPSEC_DIR}/private/daveKey.der"TEST_CERT="${TEST}/hosts/dave/${IPSEC_DIR}/certs/daveCert.der"CN="dave@strongswan.org"SERIAL="02"mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certspki --gen --type bliss --size 3 > ${TEST_KEY}pki --issue --cakey ${BLISS_KEY} --cacert ${BLISS_CERT} --type bliss \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=BLISS III, CN=${CN}" \    --crl ${BLISS_CDP} --digest sha3_512 > ${TEST_CERT}cp ${TEST_CERT} ${BLISS_DIR}/certs/${SERIAL}.der# Put a copy in the ikev2/rw-ntru-bliss scenarioTEST="${TEST_DIR}/ikev2/rw-ntru-bliss"mkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/dave/${IPSEC_DIR}/certscp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private/cp ${TEST_CERT} ${TEST}/hosts/dave/${IPSEC_DIR}/certs/# Put a copy in the swanctl scenariosfor t in rw-newhope-bliss rw-ntru-blissdo  TEST="${TEST_DIR}/swanctl/${t}"  mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/bliss  mkdir -p ${TEST}/hosts/dave/${SWANCTL_DIR}/x509  cp ${TEST_KEY} ${TEST}/hosts/dave/${SWANCTL_DIR}/bliss/  cp ${TEST_CERT} ${TEST}/hosts/dave/${SWANCTL_DIR}/x509/done# Generate a moon BLISS certificate with 192 bit security strengthTEST="${TEST_DIR}/ikev2/rw-newhope-bliss"TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey.der"TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/certs/moonCert.der"CN="moon.strongswan.org"SERIAL="03"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certspki --gen --type bliss --size 4 > ${TEST_KEY}pki --issue --cakey ${BLISS_KEY} --cacert ${BLISS_CERT} --type bliss \    --in ${TEST_KEY} --not-before "${START}" --not-after "${EE_END}" --san ${CN} \    --serial ${SERIAL} --dn "C=CH, O=${PROJECT}, OU=BLISS IV, CN=${CN}" \    --crl ${BLISS_CDP} --digest sha3_512 > ${TEST_CERT}cp ${TEST_CERT} ${BLISS_DIR}/certs/${SERIAL}.der# Put a copy in the ikev2/rw-ntru-bliss scenarioTEST="${TEST_DIR}/ikev2/rw-ntru-bliss"mkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/privatemkdir -p ${TEST}/hosts/moon/${IPSEC_DIR}/certscp ${TEST_KEY} ${TEST}/hosts/moon/${IPSEC_DIR}/private/cp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/certs/# Put a copy in the swanctl scenariosfor t in rw-newhope-bliss rw-ntru-blissdo  TEST="${TEST_DIR}/swanctl/${t}"  mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/bliss  mkdir -p ${TEST}/hosts/moon/${SWANCTL_DIR}/x509  cp ${TEST_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/bliss/  cp ${TEST_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509/done################################################################################# SQL Data                                                                     #################################################################################CA_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${CA_KEY}`CA_SPKI_HEX=`pki --keyid --type rsa --format hex --id spki --in ${CA_KEY}`CA_CERT_HEX=`cat ${CA_CERT_DER} | hexdump -v -e '/1 "%02x"'`CA_CERT_PEM_HEX=`cat ${CA_CERT} | hexdump -v -e '/1 "%02x"'`#MOON_CERT="${DIR}/hosts/moon/${SWANCTL_DIR}/x509/moonCert.pem"MOON_KEY="${CA_DIR}/keys/moonKey.der"MOON_KEY_PEM="${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem"MOON_KEY_PEM_HEX=`cat ${MOON_KEY_PEM} | hexdump -v -e '/1 "%02x"'`MOON_KEY_HEX=`cat ${MOON_KEY} | hexdump -v -e '/1 "%02x"'`MOON_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${MOON_KEY}`MOON_PUB_HEX=`pki --pub --type rsa --in ${MOON_KEY} | hexdump -v -e '/1 "%02x"'`MOON_CERT_HEX=`openssl x509 -in ${MOON_CERT} -outform der | hexdump -v -e '/1 "%02x"'`MOON_CERT_PEM_HEX=`cat ${MOON_CERT} | hexdump -v -e '/1 "%02x"'`#SUN_CERT="${DIR}/hosts/sun/${SWANCTL_DIR}/x509/sunCert.pem"SUN_KEY="${CA_DIR}/keys/sunKey.der"SUN_KEY_PEM="${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem"SUN_KEY_PEM_HEX=`cat ${SUN_KEY_PEM} | hexdump -v -e '/1 "%02x"'`SUN_KEY_HEX=`cat ${SUN_KEY} | hexdump -v -e '/1 "%02x"'`SUN_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${SUN_KEY}`SUN_CERT_HEX=`openssl x509 -in ${SUN_CERT} -outform der | hexdump -v -e '/1 "%02x"'`SUN_CERT_PEM_HEX=`cat ${SUN_CERT} | hexdump -v -e '/1 "%02x"'`#CAROL_CERT="${DIR}/hosts/carol/${SWANCTL_DIR}/x509/carolCert.pem"CAROL_KEY="${CA_DIR}/keys/carolKey.der"CAROL_KEY_HEX=`cat ${CAROL_KEY} | hexdump -v -e '/1 "%02x"'`CAROL_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${CAROL_KEY}`CAROL_PUB_HEX=`pki --pub --type rsa --in ${CAROL_KEY} | hexdump -v -e '/1 "%02x"'`CAROL_CERT_HEX=`openssl x509 -in ${CAROL_CERT} -outform der | hexdump -v -e '/1 "%02x"'`#DAVE_CERT="${DIR}/hosts/dave/${SWANCTL_DIR}/x509/daveCert.pem"DAVE_KEY="${CA_DIR}/keys/daveKey.der"DAVE_KEY_HEX=`cat ${DAVE_KEY} | hexdump -v -e '/1 "%02x"'`DAVE_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${DAVE_KEY}`DAVE_PUB_HEX=`pki --pub --type rsa --in ${DAVE_KEY} | hexdump -v -e '/1 "%02x"'`DAVE_CERT_HEX=`openssl x509 -in ${DAVE_CERT} -outform der | hexdump -v -e '/1 "%02x"'`#ALICE_CERT="${DIR}/hosts/alice/${SWANCTL_DIR}/x509/aliceCert.pem"ALICE_KEY="${CA_DIR}/keys/aliceKey.der"ALICE_KEY_HEX=`cat ${ALICE_KEY} | hexdump -v -e '/1 "%02x"'`ALICE_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${ALICE_KEY}`ALICE_CERT_HEX=`openssl x509 -in ${ALICE_CERT} -outform der | hexdump -v -e '/1 "%02x"'`#VENUS_CERT="${DIR}/hosts/venus/${SWANCTL_DIR}/x509/venusCert.pem"VENUS_KEY="${CA_DIR}/keys/venusKey.der"VENUS_KEY_HEX=`cat ${VENUS_KEY} | hexdump -v -e '/1 "%02x"'`VENUS_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${VENUS_KEY}`VENUS_CERT_HEX=`openssl x509 -in ${VENUS_CERT} -outform der | hexdump -v -e '/1 "%02x"'`#RESEARCH_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${RESEARCH_KEY}`RESEARCH_SPKI_HEX=`pki --keyid --type rsa --format hex --id spki --in ${RESEARCH_KEY}`RESEARCH_CERT_HEX=`cat ${RESEARCH_CERT_DER} | hexdump -v -e '/1 "%02x"'`#CAROL_R_CERT="${RESEARCH_DIR}/certs/01.pem"CAROL_R_KEY="${RESEARCH_DIR}/keys/01.der"CAROL_R_KEY_HEX=`cat ${CAROL_R_KEY} | hexdump -v -e '/1 "%02x"'`CAROL_R_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${CAROL_R_KEY}`CAROL_R_CERT_HEX=`openssl x509 -in ${CAROL_R_CERT} -outform der | hexdump -v -e '/1 "%02x"'`#SALES_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${SALES_KEY}`SALES_SPKI_HEX=`pki --keyid --type rsa --format hex --id spki --in ${SALES_KEY}`SALES_CERT_HEX=`cat ${SALES_CERT_DER} | hexdump -v -e '/1 "%02x"'`#DAVE_S_CERT="${SALES_DIR}/certs/01.pem"DAVE_S_KEY="${SALES_DIR}/keys/01.der"DAVE_S_KEY_HEX=`cat ${DAVE_S_KEY} | hexdump -v -e '/1 "%02x"'`DAVE_S_SPK_HEX=`pki --keyid --type rsa --format hex --id spk --in ${DAVE_S_KEY}`DAVE_S_CERT_HEX=`openssl x509 -in ${DAVE_S_CERT} -outform der | hexdump -v -e '/1 "%02x"'`#for t in ip-pool-db ip-pool-db-expired ip-pool-db-restart ip-split-pools-db \         ip-split-pools-db-restart multi-level-ca rw-cert rw-psk-rsa-split \         rw-psk-ipv4 rw-psk-ipv6 rw-rsa rw-rsa-keyiddo  for h in carol dave moon  do    TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"    sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \        -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \        -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \        -e "s/MOON_KEY_HEX/${MOON_KEY_HEX}/g" \        -e "s/MOON_SPK_HEX/${MOON_SPK_HEX}/g" \        -e "s/MOON_PUB_HEX/${MOON_PUB_HEX}/g" \        -e "s/MOON_CERT_HEX/${MOON_CERT_HEX}/g" \        -e "s/CAROL_KEY_HEX/${CAROL_KEY_HEX}/g" \        -e "s/CAROL_SPK_HEX/${CAROL_SPK_HEX}/g" \        -e "s/CAROL_PUB_HEX/${CAROL_PUB_HEX}/g" \        -e "s/CAROL_CERT_HEX/${CAROL_CERT_HEX}/g" \        -e "s/DAVE_KEY_HEX/${DAVE_KEY_HEX}/g" \        -e "s/DAVE_SPK_HEX/${DAVE_SPK_HEX}/g" \        -e "s/DAVE_PUB_HEX/${DAVE_PUB_HEX}/g" \        -e "s/DAVE_CERT_HEX/${DAVE_CERT_HEX}/g" \        -e "s/RESEARCH_SPK_HEX/${RESEARCH_SPK_HEX}/g" \        -e "s/RESEARCH_SPKI_HEX/${RESEARCH_SPKI_HEX}/g" \        -e "s/RESEARCH_CERT_HEX/${RESEARCH_CERT_HEX}/g" \        -e "s/CAROL_R_KEY_HEX/${CAROL_R_KEY_HEX}/g" \        -e "s/CAROL_R_SPK_HEX/${CAROL_R_SPK_HEX}/g" \        -e "s/CAROL_R_CERT_HEX/${CAROL_R_CERT_HEX}/g" \        -e "s/SALES_SPK_HEX/${SALES_SPK_HEX}/g" \        -e "s/SALES_SPKI_HEX/${SALES_SPKI_HEX}/g" \        -e "s/SALES_CERT_HEX/${SALES_CERT_HEX}/g" \        -e "s/DAVE_S_KEY_HEX/${DAVE_S_KEY_HEX}/g" \        -e "s/DAVE_S_SPK_HEX/${DAVE_S_SPK_HEX}/g" \        -e "s/DAVE_S_CERT_HEX/${DAVE_S_CERT_HEX}/g" \        ${TEST_DATA}.in > ${TEST_DATA}  donedone#for t in rw-eap-aka-rsado  for h in carol moon  do    TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"    sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \        -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \        -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \        -e "s/MOON_KEY_HEX/${MOON_KEY_HEX}/g" \        -e "s/MOON_SPK_HEX/${MOON_SPK_HEX}/g" \        -e "s/MOON_CERT_HEX/${MOON_CERT_HEX}/g" \        ${TEST_DATA}.in > ${TEST_DATA}  donedone#for t in net2net-cert net2net-psk net2net-route-pem net2net-start-pemdo  for h in moon sun  do    TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"    sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \        -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \        -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \        -e "s/CA_CERT_PEM_HEX/${CA_CERT_PEM_HEX}/g" \        -e "s/MOON_KEY_PEM_HEX/${MOON_KEY_PEM_HEX}/g" \        -e "s/MOON_KEY_HEX/${MOON_KEY_HEX}/g" \        -e "s/MOON_SPK_HEX/${MOON_SPK_HEX}/g" \        -e "s/MOON_CERT_HEX/${MOON_CERT_HEX}/g" \        -e "s/MOON_CERT_PEM_HEX/${MOON_CERT_PEM_HEX}/g" \        -e "s/SUN_KEY_PEM_HEX/${SUN_KEY_PEM_HEX}/g" \        -e "s/SUN_KEY_HEX/${SUN_KEY_HEX}/g" \        -e "s/SUN_SPK_HEX/${SUN_SPK_HEX}/g" \        -e "s/SUN_CERT_HEX/${SUN_CERT_HEX}/g" \        -e "s/SUN_CERT_PEM_HEX/${SUN_CERT_PEM_HEX}/g" \               ${TEST_DATA}.in > ${TEST_DATA}  donedone#for t in shunt-policies-nat-rwdo  for h in alice venus sun  do    TEST_DATA="${TEST_DIR}/sql/${t}/hosts/${h}/${IPSEC_DIR}/data.sql"    sed -e "s/CA_SPK_HEX/${CA_SPK_HEX}/g" \        -e "s/CA_SPKI_HEX/${CA_SPKI_HEX}/g" \        -e "s/CA_CERT_HEX/${CA_CERT_HEX}/g" \        -e "s/ALICE_KEY_HEX/${ALICE_KEY_HEX}/g" \        -e "s/ALICE_SPK_HEX/${ALICE_SPK_HEX}/g" \        -e "s/ALICE_CERT_HEX/${ALICE_CERT_HEX}/g" \        -e "s/VENUS_KEY_HEX/${VENUS_KEY_HEX}/g" \        -e "s/VENUS_SPK_HEX/${VENUS_SPK_HEX}/g" \        -e "s/VENUS_CERT_HEX/${VENUS_CERT_HEX}/g" \        -e "s/SUN_KEY_HEX/${SUN_KEY_HEX}/g" \        -e "s/SUN_SPK_HEX/${SUN_SPK_HEX}/g" \        -e "s/SUN_CERT_HEX/${SUN_CERT_HEX}/g" \        ${TEST_DATA}.in > ${TEST_DATA}  donedone################################################################################# Raw RSA keys                                                                 #################################################################################MOON_PUB_DNS=`pki --pub --type rsa --outform dnskey --in ${MOON_KEY}`#SUN_PUB_DNS=`pki --pub --type rsa --outform dnskey --in ${SUN_KEY}`#for h in moon sundo  TEST_DATA="${TEST_DIR}/ikev2/net2net-rsa/hosts/${h}/etc/ipsec.conf"  sed -e "s|MOON_PUB_DNS|${MOON_PUB_DNS}|g" \      -e "s|SUN_PUB_DNS|${SUN_PUB_DNS}|g" \      ${TEST_DATA}.in > ${TEST_DATA}done
 |