123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- #! /bin/sh
- #
- # Copyright (c) International Business Machines Corp., 2005
- #
- # This program is free software; you can redistribute it and#or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- # for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- #
- setup()
- {
- RC=0 # Return code from commands.
- if [ -z "$LTPTMP" ] && [ -z "$TMPBASE" ]
- then
- LTPTMP="/tmp"
- else
- LTPTMP="$TMPBASE"
- fi
- export TPM_TMPFILE="$LTPTMP/tst_tpm.err"
- rm -f $TPM_TMPFILE 2>&1
- # Set the cert, key and combined cert and key filenames
- export TPM_CERTFILE="$LTPTMP/tst_tpm.cert"
- rm -f $TPM_CERTFILE 2>&1
- export TPM_KEYFILE="$LTPTMP/tst_tpm.key"
- rm -f $TPM_KEYFILE 2>&1
- export TPM_COMBFILE="$LTPTMP/tst_tpm.comb"
- rm -f $TPM_COMBFILE 2>&1
- # Set the OpenSSL configuration file
- export TPM_SSLCONF="$LTPBIN/tpmtoken_import_openssl.cnf"
- # Set known password values
- if [ -z "$P11_SO_PWD" ]
- then
- export P11_SO_PWD="P11 SO PWD"
- fi
- if [ -z "$P11_USER_PWD" ]
- then
- export P11_USER_PWD="P11 USER PWD"
- fi
- # This password needs to correspond to the passwords
- # in the supplied OpenSSL configuration file
- if [ -z "$SSL_PWD" ]
- then
- export SSL_PWD="SSL PWD"
- fi
- tst_resm TINFO "INIT: Inititalizing tests."
- which tpmtoken_import 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -ne 0 ]
- then
- tst_brk TBROK $TPM_TMPFILE NULL \
- "Test: tpmtoken_import command does not exist. Reason:"
- return $RC
- fi
- which openssl 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -ne 0 ]
- then
- tst_brk TBROK $TPM_TMPFILE NULL \
- "Setup: openssl command does not exist. Reason:"
- return $RC
- fi
- openssl req -x509 -new -out $TPM_CERTFILE \
- -newkey rsa:2048 -keyout $TPM_KEYFILE \
- -sha1 -batch -config $TPM_SSLCONF
- if [ $RC -ne 0 ]
- then
- tst_brk TBROK $TPM_TMPFILE NULL \
- "Setup: unable to create certificate and/or key file. Reason:"
- return $RC
- fi
- cat $TPM_CERTFILE $TPM_KEYFILE 1>$TPM_COMBFILE 2>&1 || RC=$?
- if [ $RC -ne 0 ]
- then
- tst_brk TBROK $TPM_COMBFILE NULL \
- "Setup: unable to create combined certficate and key file. Reason:"
- return $RC
- fi
- return $RC
- }
- test01()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import01 # Test ID
- export TST_COUNT=1 # Test number
- tpmtoken_import_tests_exp01.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -n $TCID $TPM_COMBFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -n $TCID $TPM_COMBFILE' failed."
- RC=1
- fi
- return $RC
- }
- test02()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import02 # Test ID
- export TST_COUNT=2 # Test number
- tpmtoken_import_tests_exp02.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -n $TCID $TPM_COMBFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -n $TCID $TPM_COMBFILE' failed."
- RC=1
- fi
- return $RC
- }
- test03()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import03 # Test ID
- export TST_COUNT=3 # Test number
- tpmtoken_import_tests_exp03.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -y -n $TCID $TPM_COMBFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -y -n $TCID $TPM_COMBFILE' failed."
- RC=1
- fi
- return $RC
- }
- test04()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import04 # Test ID
- export TST_COUNT=4 # Test number
- tpmtoken_import_tests_exp04.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -p -n $TCID $TPM_COMBFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -p -n $TCID $TPM_COMBFILE' failed."
- RC=1
- fi
- return $RC
- }
- test05()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import05 # Test ID
- export TST_COUNT=5 # Test number
- tpmtoken_import_tests_exp05.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -p -n $TCID $TPM_COMBFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -p -n $TCID $TPM_COMBFILE' failed."
- RC=1
- fi
- return $RC
- }
- test06()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import06 # Test ID
- export TST_COUNT=6 # Test number
- tpmtoken_import_tests_exp06.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -y -p -n $TCID $TPM_COMBFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -y -p -n $TCID $TPM_COMBFILE' failed."
- RC=1
- fi
- return $RC
- }
- test07()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import07 # Test ID
- export TST_COUNT=7 # Test number
- tpmtoken_import_tests_exp07.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -n $TCID $TPM_CERTFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -n $TCID $TPM_CERTFILE' failed."
- RC=1
- fi
- return $RC
- }
- test08()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import08 # Test ID
- export TST_COUNT=8 # Test number
- tpmtoken_import_tests_exp08.sh 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -eq 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -n $TCID $TPM_KEYFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -n $TCID $TPM_KEYFILE' failed."
- RC=1
- fi
- return $RC
- }
- test09()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import09 # Test ID
- export TST_COUNT=9 # Test number
- # The command should fail in this test case!
- tpmtoken_import -t key -n $TCID $TPM_CERTFILE 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -ne 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -t key -n $TCID $TPM_CERTFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -t key -n $TCID $TPM_CERTFILE' failed."
- RC=1
- fi
- return $RC
- }
- test10()
- {
- RC=0 # Return value from commands
- export TCID=tpmtoken_import10 # Test ID
- export TST_COUNT=10 # Test number
- # The command should fail in this test case!
- tpmtoken_import -t cert -n $TCID $TPM_KEYFILE 1>$TPM_TMPFILE 2>&1 || RC=$?
- if [ $RC -ne 0 ]
- then
- tst_resm TPASS "'tpmtoken_import -t cert -n $TCID $TPM_KEYFILE' passed."
- RC=0
- else
- tst_res TFAIL $TPM_TMPFILE "'tpmtoken_import -t cert -n $TCID $TPM_KEYFILE' failed."
- RC=1
- fi
- return $RC
- }
- cleanup()
- {
- rm -f $TPM_TMPFILE 2>&1
- rm -f $TPM_CERTFILE 2>&1
- rm -f $TPM_KEYFILE 2>&1
- rm -f $TPM_COMBFILE 2>&1
- }
- # Function: main
- #
- # Description: - Execute all tests, report results.
- #
- # Exit: - zero on success
- # - non-zero on failure.
- TFAILCNT=0 # Set TFAILCNT to 0, increment on failure.
- RC=0 # Return code from tests.
- export TCID=tpmtoken_import # Test ID
- export TST_TOTAL=10 # Total numner of tests in this file.
- export TST_COUNT=0 # Initialize identifier
- if [ -n "$TPM_NOPKCS11" ]
- then
- tst_resm TINFO "'tpmtoken_import' skipped."
- exit $TFAILCNT
- fi
- setup || exit $RC # Exit if initializing testcases fails.
- test01 || TFAILCNT=$(($TFAILCNT+1))
- test02 || TFAILCNT=$(($TFAILCNT+1))
- test03 || TFAILCNT=$(($TFAILCNT+1))
- test04 || TFAILCNT=$(($TFAILCNT+1))
- test05 || TFAILCNT=$(($TFAILCNT+1))
- test06 || TFAILCNT=$(($TFAILCNT+1))
- test07 || TFAILCNT=$(($TFAILCNT+1))
- test08 || TFAILCNT=$(($TFAILCNT+1))
- test09 || TFAILCNT=$(($TFAILCNT+1))
- test10 || TFAILCNT=$(($TFAILCNT+1))
- cleanup
- exit $TFAILCNT
|