| Index: openssl/test/testtsa
|
| ===================================================================
|
| --- openssl/test/testtsa (revision 0)
|
| +++ openssl/test/testtsa (revision 0)
|
| @@ -0,0 +1,238 @@
|
| +#!/bin/sh
|
| +
|
| +#
|
| +# A few very basic tests for the 'ts' time stamping authority command.
|
| +#
|
| +
|
| +SH="/bin/sh"
|
| +if test "$OSTYPE" = msdosdjgpp; then
|
| + PATH="../apps\;$PATH"
|
| +else
|
| + PATH="../apps:$PATH"
|
| +fi
|
| +export SH PATH
|
| +
|
| +OPENSSL_CONF="../CAtsa.cnf"
|
| +export OPENSSL_CONF
|
| +# Because that's what ../apps/CA.sh really looks at
|
| +SSLEAY_CONFIG="-config $OPENSSL_CONF"
|
| +export SSLEAY_CONFIG
|
| +
|
| +OPENSSL="`pwd`/../util/opensslwrap.sh"
|
| +export OPENSSL
|
| +
|
| +error () {
|
| +
|
| + echo "TSA test failed!" >&2
|
| + exit 1
|
| +}
|
| +
|
| +setup_dir () {
|
| +
|
| + rm -rf tsa 2>/dev/null
|
| + mkdir tsa
|
| + cd ./tsa
|
| +}
|
| +
|
| +clean_up_dir () {
|
| +
|
| + cd ..
|
| + rm -rf tsa
|
| +}
|
| +
|
| +create_ca () {
|
| +
|
| + echo "Creating a new CA for the TSA tests..."
|
| + TSDNSECT=ts_ca_dn
|
| + export TSDNSECT
|
| + ../../util/shlib_wrap.sh ../../apps/openssl req -new -x509 -nodes \
|
| + -out tsaca.pem -keyout tsacakey.pem
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +create_tsa_cert () {
|
| +
|
| + INDEX=$1
|
| + export INDEX
|
| + EXT=$2
|
| + TSDNSECT=ts_cert_dn
|
| + export TSDNSECT
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl req -new \
|
| + -out tsa_req${INDEX}.pem -keyout tsa_key${INDEX}.pem
|
| + test $? != 0 && error
|
| +echo Using extension $EXT
|
| + ../../util/shlib_wrap.sh ../../apps/openssl x509 -req \
|
| + -in tsa_req${INDEX}.pem -out tsa_cert${INDEX}.pem \
|
| + -CA tsaca.pem -CAkey tsacakey.pem -CAcreateserial \
|
| + -extfile $OPENSSL_CONF -extensions $EXT
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +print_request () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -query -in $1 -text
|
| +}
|
| +
|
| +create_time_stamp_request1 () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -query -data ../testtsa -policy tsa_policy1 -cert -out req1.tsq
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +create_time_stamp_request2 () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -query -data ../testtsa -policy tsa_policy2 -no_nonce \
|
| + -out req2.tsq
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +create_time_stamp_request3 () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -query -data ../CAtsa.cnf -no_nonce -out req3.tsq
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +print_response () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -in $1 -text
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +create_time_stamp_response () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -section $3 -queryfile $1 -out $2
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +time_stamp_response_token_test () {
|
| +
|
| + RESPONSE2=$2.copy.tsr
|
| + TOKEN_DER=$2.token.der
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -in $2 -out $TOKEN_DER -token_out
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -in $TOKEN_DER -token_in -out $RESPONSE2
|
| + test $? != 0 && error
|
| + cmp $RESPONSE2 $2
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -in $2 -text -token_out
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -in $TOKEN_DER -token_in -text -token_out
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -queryfile $1 -text -token_out
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +verify_time_stamp_response () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -verify -queryfile $1 -in $2 -CAfile tsaca.pem \
|
| + -untrusted tsa_cert1.pem
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -verify -data $3 -in $2 -CAfile tsaca.pem \
|
| + -untrusted tsa_cert1.pem
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +verify_time_stamp_token () {
|
| +
|
| + # create the token from the response first
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -reply -in $2 -out $2.token -token_out
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -verify -queryfile $1 -in $2.token -token_in \
|
| + -CAfile tsaca.pem -untrusted tsa_cert1.pem
|
| + test $? != 0 && error
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -verify -data $3 -in $2.token -token_in \
|
| + -CAfile tsaca.pem -untrusted tsa_cert1.pem
|
| + test $? != 0 && error
|
| +}
|
| +
|
| +verify_time_stamp_response_fail () {
|
| +
|
| + ../../util/shlib_wrap.sh ../../apps/openssl ts -verify -queryfile $1 -in $2 -CAfile tsaca.pem \
|
| + -untrusted tsa_cert1.pem
|
| + # Checks if the verification failed, as it should have.
|
| + test $? = 0 && error
|
| + echo Ok
|
| +}
|
| +
|
| +# main functions
|
| +
|
| +echo "Setting up TSA test directory..."
|
| +setup_dir
|
| +
|
| +echo "Creating CA for TSA tests..."
|
| +create_ca
|
| +
|
| +echo "Creating tsa_cert1.pem TSA server cert..."
|
| +create_tsa_cert 1 tsa_cert
|
| +
|
| +echo "Creating tsa_cert2.pem non-TSA server cert..."
|
| +create_tsa_cert 2 non_tsa_cert
|
| +
|
| +echo "Creating req1.req time stamp request for file testtsa..."
|
| +create_time_stamp_request1
|
| +
|
| +echo "Printing req1.req..."
|
| +print_request req1.tsq
|
| +
|
| +echo "Generating valid response for req1.req..."
|
| +create_time_stamp_response req1.tsq resp1.tsr tsa_config1
|
| +
|
| +echo "Printing response..."
|
| +print_response resp1.tsr
|
| +
|
| +echo "Verifying valid response..."
|
| +verify_time_stamp_response req1.tsq resp1.tsr ../testtsa
|
| +
|
| +echo "Verifying valid token..."
|
| +verify_time_stamp_token req1.tsq resp1.tsr ../testtsa
|
| +
|
| +# The tests below are commented out, because invalid signer certificates
|
| +# can no longer be specified in the config file.
|
| +
|
| +# echo "Generating _invalid_ response for req1.req..."
|
| +# create_time_stamp_response req1.tsq resp1_bad.tsr tsa_config2
|
| +
|
| +# echo "Printing response..."
|
| +# print_response resp1_bad.tsr
|
| +
|
| +# echo "Verifying invalid response, it should fail..."
|
| +# verify_time_stamp_response_fail req1.tsq resp1_bad.tsr
|
| +
|
| +echo "Creating req2.req time stamp request for file testtsa..."
|
| +create_time_stamp_request2
|
| +
|
| +echo "Printing req2.req..."
|
| +print_request req2.tsq
|
| +
|
| +echo "Generating valid response for req2.req..."
|
| +create_time_stamp_response req2.tsq resp2.tsr tsa_config1
|
| +
|
| +echo "Checking '-token_in' and '-token_out' options with '-reply'..."
|
| +time_stamp_response_token_test req2.tsq resp2.tsr
|
| +
|
| +echo "Printing response..."
|
| +print_response resp2.tsr
|
| +
|
| +echo "Verifying valid response..."
|
| +verify_time_stamp_response req2.tsq resp2.tsr ../testtsa
|
| +
|
| +echo "Verifying response against wrong request, it should fail..."
|
| +verify_time_stamp_response_fail req1.tsq resp2.tsr
|
| +
|
| +echo "Verifying response against wrong request, it should fail..."
|
| +verify_time_stamp_response_fail req2.tsq resp1.tsr
|
| +
|
| +echo "Creating req3.req time stamp request for file CAtsa.cnf..."
|
| +create_time_stamp_request3
|
| +
|
| +echo "Printing req3.req..."
|
| +print_request req3.tsq
|
| +
|
| +echo "Verifying response against wrong request, it should fail..."
|
| +verify_time_stamp_response_fail req3.tsq resp1.tsr
|
| +
|
| +echo "Cleaning up..."
|
| +clean_up_dir
|
| +
|
| +exit 0
|
|
|