blob: 84b06cd5c019e30b5ac57886edf17cd20d42f2fc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#!/bin/sh
set -o nounset
set -o errexit
SOFTHSM=/usr/local/bin/softhsm2-util
top_srcdir=$(cd $(dirname $0)/../..; pwd)
. ${top_srcdir}/test/scripts/testutils.sh
createca () {
mkdir httpsca
( cd httpsca ; \
mkdir -p demoCA/newcerts ; \
touch demoCA/index.txt ; \
echo 00 > demoCA/serial ; \
echo '[ req ]' > caconfig.txt ; \
echo 'distinguished_name = req_distinguished_name' >> caconfig.txt ; \
echo 'x509_extensions = v3_ca' >> caconfig.txt ; \
echo 'string_mask = utf8only' >> caconfig.txt ; \
echo '[ req_distinguished_name ]' >> caconfig.txt ; \
echo '[ v3_ca ]' >> caconfig.txt ; \
echo 'basicConstraints=CA:true' >> caconfig.txt ; \
openssl req -newkey rsa:2048 -keyout key.pem -out req.csr -nodes -subj '/countryName=SE/stateOrProvinceName=Stockholm/organizationName=Test/commonName=ca/O=ca' -config caconfig.txt ; \
openssl ca -in req.csr -selfsign -keyfile key.pem -out demoCA/cacert.pem -batch \
)
}
createcert () {
mkdir httpscert
openssl req -new -newkey rsa:2048 -keyout httpscert/httpskey-1.pem -out httpsca/httpscert-1.csr -nodes -subj '/countryName=SE/stateOrProvinceName=Stockholm/organizationName=Test/CN=localhost'
( cd httpsca ; \
openssl ca -in httpscert-1.csr -keyfile key.pem -out httpscert-1.pem -batch \
)
cp httpsca/httpscert-1.pem httpscert/
}
createca
createcert
cafingerprint=$(openssl x509 -in httpsca/demoCA/cacert.pem -noout -sha256 -fingerprint | sed -e 's/.*=//' -e 's/://g')
mkdir keys
(cd keys ; ${top_srcdir}/tools/create-key.sh logkey)
openssl pkcs8 -topk8 -nocrypt -in keys/logkey-private.pem -out keys/logkey-private.pkcs8
mkdir mergedb
touch mergedb/logorder
mkdir mergedb-secondary
touch mergedb-secondary/logorder
printf 0 > mergedb-secondary/verifiedsize
mkdir known_roots
cp ${top_srcdir}/tools/testcerts/roots/* known_roots
mkdir privatekeys
echo "apikeys:" > api-keys.cfg
for node in ${NODES}; do \
(cd privatekeys ; ${top_srcdir}/tools/create-key.sh ${node})
apipk=$(grep -v '^-----' privatekeys/${node}.pem | tr '\n' ' ')
mkdir -p nodes/${node}/log
echo " - nodename: ${node}" >> api-keys.cfg
echo " publickey: ${apipk}" >> api-keys.cfg
done
logpk=$(grep -v '^-----' keys/logkey.pem | tr '\n' ' ')
echo "logpublickey: ${logpk}" >> api-keys.cfg
echo "cafingerprint: ${cafingerprint}" >> api-keys.cfg
cat ${top_srcdir}/test/catlfish-test.cfg.in api-keys.cfg > ${top_srcdir}/test/catlfish-test.cfg
openssl dgst -sha256 -sign ${top_srcdir}/test/logadminkey-private.pem -out ${top_srcdir}/test/catlfish-test.cfg.sig ${top_srcdir}/test/catlfish-test.cfg
for machine in ${MACHINES}; do \
${top_srcdir}/tools/compileconfig.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-${machine}.cfg
mkdir -p machine/machine-${machine}/db
touch machine/machine-${machine}/db/index && touch machine/machine-${machine}/db/newentries
done
${top_srcdir}/tools/compileconfig.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-merge-2.cfg
${top_srcdir}/tools/compileconfig.py --config ${top_srcdir}/test/catlfish-test.cfg --localconfig ${top_srcdir}/test/catlfish-test-local-signing.cfg
test -x ${SOFTHSM} && ${SOFTHSM} --init-token --slot=0 --label=mylabel --so-pin=ffff --pin=ffff || true
test -x ${SOFTHSM} && ${SOFTHSM} --import keys/logkey-private.pkcs8 --slot 0 --label mylabel --pin ffff --id 00 || true
|