testing: Build data.sql files for SQL test cases

This commit is contained in:
Andreas Steffen
2019-05-08 14:56:48 +02:00
committed by Tobias Brunner
parent 0c924641e6
commit 00f1d09729
94 changed files with 7373 additions and 7177 deletions
+202 -12
View File
@@ -13,6 +13,7 @@ PROJECT="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"
@@ -32,11 +33,13 @@ NOW=`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"
@@ -84,8 +87,11 @@ TEST_DIR="${DIR}/tests"
# Create directories
mkdir -p ${CA_DIR}/certs
mkdir -p ${CA_DIR}/keys
mkdir -p ${RESEARCH_DIR}/certs
mkdir -p ${RESEARCH_DIR}/keys
mkdir -p ${SALES_DIR}/certs
mkdir -p ${SALES_DIR}/keys
mkdir -p ${DUCK_DIR}/certs
mkdir -p ${ECDSA_DIR}/certs
mkdir -p ${RFC3779_DIR}/certs
@@ -115,6 +121,9 @@ done
# Put a copy onto the alice FreeRADIUS server
cp ${CA_CERT} ${DIR}/hosts/alice/etc/raddb/certs
# Convert strongSwan Root CA certificate into DER format
openssl x509 -in ${CA_CERT} -outform der -out ${CA_CERT_DER}
# Gernerate a stale CRL
pki --signcrl --cakey ${CA_KEY} --cacert ${CA_CERT} \
--this-update "${START}" --lifetime 1 > ${CA_LAST_CRL}
@@ -133,29 +142,25 @@ do
# Put a copy into swanctl directory tree
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/null
done
# Convert moon private key and Root CA certificate into DER format
# Put DER-encoded moon private key and Root CA certificate into tkm scenarios
for t in host2host-initiator host2host-responder host2host-xfrmproxy \
net2net-initiator net2net-xfrmproxy xfrmproxy-expire xfrmproxy-rekey
do
HOST_KEY=${DIR}/hosts/moon/${SWANCTL_DIR}/rsa/moonKey.pem
TEST="${TEST_DIR}/tkm/${t}"
TEST_KEY=${TEST}/hosts/moon/${TKM_DIR}/moonKey.der
TEST_CERT=${TEST}/hosts/moon/${TKM_DIR}/strongswanCert.der
openssl rsa -in ${HOST_KEY} -outform der -out ${TEST_KEY} 2> /dev/null
openssl x509 -in ${CA_CERT} -outform der -out ${TEST_CERT}
cp ${CA_DIR}/keys/moonKey.der ${CA_CERT_DER} ${TEST}/hosts/moon/${TKM_DIR}
done
# Convert sun private key and Root CA certificate into DER format
# Put DER_encoded sun private key and Root CA certificate into tkm scenarios
for t in multiple-clients
do
HOST_KEY=${DIR}/hosts/sun/${SWANCTL_DIR}/rsa/sunKey.pem
TEST="${TEST_DIR}/tkm/${t}"
TEST_KEY=${TEST}/hosts/sun/${TKM_DIR}/sunKey.der
TEST_CERT=${TEST}/hosts/sun/${TKM_DIR}/strongswanCert.der
openssl rsa -in ${HOST_KEY} -outform der -out ${TEST_KEY} 2> /dev/null
openssl x509 -in ${CA_CERT} -outform der -out ${TEST_CERT}
cp ${CA_DIR}/keys/sunKey.der ${CA_CERT_DER} ${TEST}/hosts/sun/${TKM_DIR}
done
# Put DER-encoded moon private key and Root CA certificate into tkm scenarios
@@ -529,6 +534,9 @@ cp ${RESEARCH_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
TEST="${TEST_DIR}/swanctl/ocsp-multi-level"
cp ${RESEARCH_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
# Convert Research CA certificate into DER format
openssl x509 -in ${RESEARCH_CERT} -outform der -out ${RESEARCH_CERT_DER}
# Generate Research CA with the same private key as above but invalid CDP
TEST="${TEST_DIR}/ikev2/multi-level-ca-skipped"
TEST_CERT="${TEST}/hosts/moon/${IPSEC_DIR}/cacerts/researchCert.pem"
@@ -599,6 +607,9 @@ cp ${SALES_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
TEST="${TEST_DIR}/swanctl/ocsp-multi-level"
cp ${SALES_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509ca
# Convert Sales CA certificate into DER format
openssl x509 -in ${SALES_CERT} -outform der -out ${SALES_CERT_DER}
# Generate an AES-128 encrypted moon key and a SHA-224 hashed certificate
TEST="${TEST_DIR}/ikev2/strong-keys-certs"
TEST_KEY="${TEST}/hosts/moon/${IPSEC_DIR}/private/moonKey-aes128.pem"
@@ -880,6 +891,10 @@ pki --issue --cakey ${RESEARCH_KEY} --cacert ${RESEARCH_CERT} --type rsa \
--crl ${RESEARCH_CDP} --outform pem > ${TEST_CERT}
cp ${TEST_CERT} ${RESEARCH_DIR}/certs/${SERIAL}.pem
# Save a copy of the private key in DER format
openssl rsa -in ${TEST_KEY} -outform der \
-out ${RESEARCH_DIR}/keys/${SERIAL}.der 2> /dev/null
# Put a copy in the ikev2/multilevel-ca-cr-init scenario
TEST="${TEST_DIR}/ikev2/multi-level-ca-cr-init"
cp ${TEST_KEY} ${TEST}/hosts/carol/${IPSEC_DIR}/private
@@ -1027,6 +1042,10 @@ pki --issue --cakey ${SALES_KEY} --cacert ${SALES_CERT} --type rsa \
--crl ${SALES_CDP} --outform pem > ${TEST_CERT}
cp ${TEST_CERT} ${SALES_DIR}/certs/${SERIAL}.pem
# Save a copy of the private key in DER format
openssl rsa -in ${TEST_KEY} -outform der \
-out ${SALES_DIR}/keys/${SERIAL}.der 2> /dev/null
# Put a copy in the ikev2/multilevel-ca-cr-init scenario
TEST="${TEST_DIR}/ikev2/multi-level-ca-cr-init"
cp ${TEST_KEY} ${TEST}/hosts/dave/${IPSEC_DIR}/private
@@ -1648,3 +1667,174 @@ cp ${TEST_CERT} ${TEST}/hosts/moon/${IPSEC_DIR}/certs/
TEST="${TEST_DIR}/swanctl/rw-ntru-bliss"
cp ${TEST_KEY} ${TEST}/hosts/moon/${SWANCTL_DIR}/bliss/
cp ${TEST_CERT} ${TEST}/hosts/moon/${SWANCTL_DIR}/x509/
################################################################################
# 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-keyid
do
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}
done
done
#
for t in rw-eap-aka-rsa
do
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}
done
done
#
for t in net2net-cert net2net-psk net2net-route-pem net2net-start-pem
do
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}
done
done
#
for t in shunt-policies-nat-rw
do
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}
done
done