1097ece1648aa33ea69bbf1873bb42945e7540703mridge#! /bin/sh 2097ece1648aa33ea69bbf1873bb42945e7540703mridge# 3097ece1648aa33ea69bbf1873bb42945e7540703mridge# Copyright (c) International Business Machines Corp., 2005 4097ece1648aa33ea69bbf1873bb42945e7540703mridge# 5097ece1648aa33ea69bbf1873bb42945e7540703mridge# This program is free software; you can redistribute it and#or modify 6097ece1648aa33ea69bbf1873bb42945e7540703mridge# it under the terms of the GNU General Public License as published by 7097ece1648aa33ea69bbf1873bb42945e7540703mridge# the Free Software Foundation; either version 2 of the License, or 8097ece1648aa33ea69bbf1873bb42945e7540703mridge# (at your option) any later version. 9097ece1648aa33ea69bbf1873bb42945e7540703mridge# 10097ece1648aa33ea69bbf1873bb42945e7540703mridge# This program is distributed in the hope that it will be useful, but 11097ece1648aa33ea69bbf1873bb42945e7540703mridge# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12097ece1648aa33ea69bbf1873bb42945e7540703mridge# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13097ece1648aa33ea69bbf1873bb42945e7540703mridge# for more details. 14097ece1648aa33ea69bbf1873bb42945e7540703mridge# 15097ece1648aa33ea69bbf1873bb42945e7540703mridge# You should have received a copy of the GNU General Public License 16097ece1648aa33ea69bbf1873bb42945e7540703mridge# along with this program; if not, write to the Free Software 174548c6cf9bcdd96d8303caa4130ab638b61f8a30Wanlong Gao# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18097ece1648aa33ea69bbf1873bb42945e7540703mridge# 19097ece1648aa33ea69bbf1873bb42945e7540703mridge 20097ece1648aa33ea69bbf1873bb42945e7540703mridgesetup() 21097ece1648aa33ea69bbf1873bb42945e7540703mridge{ 22097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 # Return code from commands. 23097ece1648aa33ea69bbf1873bb42945e7540703mridge 24097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ -z "$LTPTMP" ] && [ -z "$TMPBASE" ] 25097ece1648aa33ea69bbf1873bb42945e7540703mridge then 26097ece1648aa33ea69bbf1873bb42945e7540703mridge LTPTMP="/tmp" 27097ece1648aa33ea69bbf1873bb42945e7540703mridge else 28097ece1648aa33ea69bbf1873bb42945e7540703mridge LTPTMP="$TMPBASE" 29097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 30097ece1648aa33ea69bbf1873bb42945e7540703mridge 31097ece1648aa33ea69bbf1873bb42945e7540703mridge export TPM_TMPFILE="$LTPTMP/tst_tpm.err" 32097ece1648aa33ea69bbf1873bb42945e7540703mridge rm -f $TPM_TMPFILE 2>&1 33097ece1648aa33ea69bbf1873bb42945e7540703mridge 34097ece1648aa33ea69bbf1873bb42945e7540703mridge # Set the file to be protected and the related output files 35097ece1648aa33ea69bbf1873bb42945e7540703mridge export TPM_DATAFILE="$LTPBIN/tpmtoken_protect_data.txt" 36097ece1648aa33ea69bbf1873bb42945e7540703mridge export TPM_ENCDATA="$LTPTMP/tst_tpm_data.enc" 37097ece1648aa33ea69bbf1873bb42945e7540703mridge rm -f $TPM_ENCDATA 2>&1 38097ece1648aa33ea69bbf1873bb42945e7540703mridge export TPM_DECDATA="$LTPTMP/tst_tpm_data.dec" 39097ece1648aa33ea69bbf1873bb42945e7540703mridge rm -f $TPM_DECDATA 2>&1 40097ece1648aa33ea69bbf1873bb42945e7540703mridge 41097ece1648aa33ea69bbf1873bb42945e7540703mridge # Set known password values 42097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ -z "$P11_SO_PWD" ] 43097ece1648aa33ea69bbf1873bb42945e7540703mridge then 44097ece1648aa33ea69bbf1873bb42945e7540703mridge export P11_SO_PWD="P11 SO PWD" 45097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 46097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ -z "$P11_USER_PWD" ] 47097ece1648aa33ea69bbf1873bb42945e7540703mridge then 48097ece1648aa33ea69bbf1873bb42945e7540703mridge export P11_USER_PWD="P11 USER PWD" 49097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 50097ece1648aa33ea69bbf1873bb42945e7540703mridge 51097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_resm TINFO "INIT: Inititalizing tests." 52097ece1648aa33ea69bbf1873bb42945e7540703mridge 53097ece1648aa33ea69bbf1873bb42945e7540703mridge which tpmtoken_protect 1>$TPM_TMPFILE 2>&1 || RC=$? 54097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ $RC -ne 0 ] 55097ece1648aa33ea69bbf1873bb42945e7540703mridge then 56097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_brk TBROK $TPM_TMPFILE NULL \ 57097ece1648aa33ea69bbf1873bb42945e7540703mridge "Setup: tpmtoken_protect command does not exist. Reason:" 58097ece1648aa33ea69bbf1873bb42945e7540703mridge return $RC 59097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 60097ece1648aa33ea69bbf1873bb42945e7540703mridge 61097ece1648aa33ea69bbf1873bb42945e7540703mridge return $RC 62097ece1648aa33ea69bbf1873bb42945e7540703mridge} 63097ece1648aa33ea69bbf1873bb42945e7540703mridge 64097ece1648aa33ea69bbf1873bb42945e7540703mridgetest01() 65097ece1648aa33ea69bbf1873bb42945e7540703mridge{ 66097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 # Return value from commands 67097ece1648aa33ea69bbf1873bb42945e7540703mridge export TCID=tpmtoken_protect01 # Test ID 68097ece1648aa33ea69bbf1873bb42945e7540703mridge export TST_COUNT=1 # Test number 69097ece1648aa33ea69bbf1873bb42945e7540703mridge 70097ece1648aa33ea69bbf1873bb42945e7540703mridge tpmtoken_protect_tests_exp01.sh 1>$TPM_TMPFILE 2>&1 || RC=$? 71097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ $RC -eq 0 ] 72097ece1648aa33ea69bbf1873bb42945e7540703mridge then 73097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_resm TPASS "'tpmtoken_protect -e -i $TPM_DATAFILE -o $TPM_ENCDATA' passed." 74097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 75097ece1648aa33ea69bbf1873bb42945e7540703mridge else 76097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_res TFAIL $TPM_TMPFILE "'tpmtoken_protect -e -i $TPM_DATAFILE -o $TPM_ENCDATA' failed." 77097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=1 78097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 79097ece1648aa33ea69bbf1873bb42945e7540703mridge return $RC 80097ece1648aa33ea69bbf1873bb42945e7540703mridge} 81097ece1648aa33ea69bbf1873bb42945e7540703mridge 82097ece1648aa33ea69bbf1873bb42945e7540703mridgetest02() 83097ece1648aa33ea69bbf1873bb42945e7540703mridge{ 84097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 # Return value from commands 85097ece1648aa33ea69bbf1873bb42945e7540703mridge export TCID=tpmtoken_protect02 # Test ID 86097ece1648aa33ea69bbf1873bb42945e7540703mridge export TST_COUNT=2 # Test number 87097ece1648aa33ea69bbf1873bb42945e7540703mridge 88097ece1648aa33ea69bbf1873bb42945e7540703mridge tpmtoken_protect_tests_exp02.sh 1>$TPM_TMPFILE 2>&1 || RC=$? 89097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ $RC -eq 0 ] 90097ece1648aa33ea69bbf1873bb42945e7540703mridge then 91097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_resm TPASS "'tpmtoken_protect -d -i $TPM_ENCDATA -o $TPM_DECDATA' passed." 92097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 93097ece1648aa33ea69bbf1873bb42945e7540703mridge else 94097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_res TFAIL $TPM_TMPFILE "'tpmtoken_protect -d -i $TPM_ENCDATA -o $TPM_DECDATA' failed." 95097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=1 96097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 97097ece1648aa33ea69bbf1873bb42945e7540703mridge return $RC 98097ece1648aa33ea69bbf1873bb42945e7540703mridge} 99097ece1648aa33ea69bbf1873bb42945e7540703mridge 100097ece1648aa33ea69bbf1873bb42945e7540703mridgetest03() 101097ece1648aa33ea69bbf1873bb42945e7540703mridge{ 102097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 # Return value from commands 103097ece1648aa33ea69bbf1873bb42945e7540703mridge export TCID=tpmtoken_protect03 # Test ID 104097ece1648aa33ea69bbf1873bb42945e7540703mridge export TST_COUNT=3 # Test number 105097ece1648aa33ea69bbf1873bb42945e7540703mridge 106097ece1648aa33ea69bbf1873bb42945e7540703mridge diff $TPM_DATAFILE $TPM_DECDATA 1>$TPM_TMPFILE 2>&1 || RC=$? 107097ece1648aa33ea69bbf1873bb42945e7540703mridge if [ $RC -eq 0 ] 108097ece1648aa33ea69bbf1873bb42945e7540703mridge then 109097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_resm TPASS "'diff $TPM_DATAFILE $TPM_DECDATA' passed." 110097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=0 111097ece1648aa33ea69bbf1873bb42945e7540703mridge else 112097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_res TFAIL $TPM_TMPFILE "'diff $TPM_DATAFILE $TPM_DECDATA' failed." 113097ece1648aa33ea69bbf1873bb42945e7540703mridge RC=1 114097ece1648aa33ea69bbf1873bb42945e7540703mridge fi 115097ece1648aa33ea69bbf1873bb42945e7540703mridge return $RC 116097ece1648aa33ea69bbf1873bb42945e7540703mridge} 117097ece1648aa33ea69bbf1873bb42945e7540703mridge 118097ece1648aa33ea69bbf1873bb42945e7540703mridgecleanup() 119097ece1648aa33ea69bbf1873bb42945e7540703mridge{ 120097ece1648aa33ea69bbf1873bb42945e7540703mridge rm -f $TPM_TMPFILE 2>&1 121097ece1648aa33ea69bbf1873bb42945e7540703mridge rm -f $TPM_ENCDATA 2>&1 122097ece1648aa33ea69bbf1873bb42945e7540703mridge rm -f $TPM_DECDATA 2>&1 123097ece1648aa33ea69bbf1873bb42945e7540703mridge} 124097ece1648aa33ea69bbf1873bb42945e7540703mridge 125097ece1648aa33ea69bbf1873bb42945e7540703mridge# Function: main 126097ece1648aa33ea69bbf1873bb42945e7540703mridge# 127097ece1648aa33ea69bbf1873bb42945e7540703mridge# Description: - Execute all tests, report results. 128097ece1648aa33ea69bbf1873bb42945e7540703mridge# 129097ece1648aa33ea69bbf1873bb42945e7540703mridge# Exit: - zero on success 130097ece1648aa33ea69bbf1873bb42945e7540703mridge# - non-zero on failure. 131097ece1648aa33ea69bbf1873bb42945e7540703mridge 132097ece1648aa33ea69bbf1873bb42945e7540703mridgeTFAILCNT=0 # Set TFAILCNT to 0, increment on failure. 133097ece1648aa33ea69bbf1873bb42945e7540703mridgeRC=0 # Return code from tests. 134097ece1648aa33ea69bbf1873bb42945e7540703mridge 135097ece1648aa33ea69bbf1873bb42945e7540703mridgeexport TCID=tpmtoken_protect # Test ID 136097ece1648aa33ea69bbf1873bb42945e7540703mridgeexport TST_TOTAL=3 # Total numner of tests in this file. 137097ece1648aa33ea69bbf1873bb42945e7540703mridgeexport TST_COUNT=0 # Initialize identifier 138097ece1648aa33ea69bbf1873bb42945e7540703mridge 139097ece1648aa33ea69bbf1873bb42945e7540703mridgeif [ -n "$TPM_NOPKCS11" ] 140097ece1648aa33ea69bbf1873bb42945e7540703mridgethen 141097ece1648aa33ea69bbf1873bb42945e7540703mridge tst_resm TINFO "'tpmtoken_protect' skipped." 142097ece1648aa33ea69bbf1873bb42945e7540703mridge exit $TFAILCNT 143097ece1648aa33ea69bbf1873bb42945e7540703mridgefi 144097ece1648aa33ea69bbf1873bb42945e7540703mridge 145097ece1648aa33ea69bbf1873bb42945e7540703mridgesetup || exit $RC # Exit if initializing testcases fails. 146097ece1648aa33ea69bbf1873bb42945e7540703mridge 147097ece1648aa33ea69bbf1873bb42945e7540703mridgetest01 || TFAILCNT=$(($TFAILCNT+1)) 148097ece1648aa33ea69bbf1873bb42945e7540703mridgetest02 || TFAILCNT=$(($TFAILCNT+1)) 149097ece1648aa33ea69bbf1873bb42945e7540703mridgetest03 || TFAILCNT=$(($TFAILCNT+1)) 150097ece1648aa33ea69bbf1873bb42945e7540703mridge 151097ece1648aa33ea69bbf1873bb42945e7540703mridgecleanup 152097ece1648aa33ea69bbf1873bb42945e7540703mridge 153097ece1648aa33ea69bbf1873bb42945e7540703mridgeexit $TFAILCNT 154