1#! /bin/sh 2# 3# Copyright (c) International Business Machines Corp., 2005 4# 5# This program is free software; you can redistribute it and#or modify 6# it under the terms of the GNU General Public License as published by 7# the Free Software Foundation; either version 2 of the License, or 8# (at your option) any later version. 9# 10# This program is distributed in the hope that it will be useful, but 11# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13# for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; if not, write to the Free Software 17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18# 19 20setup() 21{ 22 RC=0 # Return code from commands. 23 24 if [ -z "$LTPTMP" ] && [ -z "$TMPBASE" ] 25 then 26 LTPTMP="/tmp" 27 else 28 LTPTMP="$TMPBASE" 29 fi 30 31 export TPM_TMPFILE="$LTPTMP/tst_tpm.err" 32 rm -f $TPM_TMPFILE 2>&1 33 34 # Set the file to be protected and the related output files 35 export TPM_DATAFILE="$LTPBIN/tpmtoken_protect_data.txt" 36 export TPM_ENCDATA="$LTPTMP/tst_tpm_data.enc" 37 rm -f $TPM_ENCDATA 2>&1 38 export TPM_DECDATA="$LTPTMP/tst_tpm_data.dec" 39 rm -f $TPM_DECDATA 2>&1 40 41 # Set known password values 42 if [ -z "$P11_SO_PWD" ] 43 then 44 export P11_SO_PWD="P11 SO PWD" 45 fi 46 if [ -z "$P11_USER_PWD" ] 47 then 48 export P11_USER_PWD="P11 USER PWD" 49 fi 50 51 tst_resm TINFO "INIT: Inititalizing tests." 52 53 which tpmtoken_protect 1>$TPM_TMPFILE 2>&1 || RC=$? 54 if [ $RC -ne 0 ] 55 then 56 tst_brk TBROK $TPM_TMPFILE NULL \ 57 "Setup: tpmtoken_protect command does not exist. Reason:" 58 return $RC 59 fi 60 61 return $RC 62} 63 64test01() 65{ 66 RC=0 # Return value from commands 67 export TCID=tpmtoken_protect01 # Test ID 68 export TST_COUNT=1 # Test number 69 70 tpmtoken_protect_tests_exp01.sh 1>$TPM_TMPFILE 2>&1 || RC=$? 71 if [ $RC -eq 0 ] 72 then 73 tst_resm TPASS "'tpmtoken_protect -e -i $TPM_DATAFILE -o $TPM_ENCDATA' passed." 74 RC=0 75 else 76 tst_res TFAIL $TPM_TMPFILE "'tpmtoken_protect -e -i $TPM_DATAFILE -o $TPM_ENCDATA' failed." 77 RC=1 78 fi 79 return $RC 80} 81 82test02() 83{ 84 RC=0 # Return value from commands 85 export TCID=tpmtoken_protect02 # Test ID 86 export TST_COUNT=2 # Test number 87 88 tpmtoken_protect_tests_exp02.sh 1>$TPM_TMPFILE 2>&1 || RC=$? 89 if [ $RC -eq 0 ] 90 then 91 tst_resm TPASS "'tpmtoken_protect -d -i $TPM_ENCDATA -o $TPM_DECDATA' passed." 92 RC=0 93 else 94 tst_res TFAIL $TPM_TMPFILE "'tpmtoken_protect -d -i $TPM_ENCDATA -o $TPM_DECDATA' failed." 95 RC=1 96 fi 97 return $RC 98} 99 100test03() 101{ 102 RC=0 # Return value from commands 103 export TCID=tpmtoken_protect03 # Test ID 104 export TST_COUNT=3 # Test number 105 106 diff $TPM_DATAFILE $TPM_DECDATA 1>$TPM_TMPFILE 2>&1 || RC=$? 107 if [ $RC -eq 0 ] 108 then 109 tst_resm TPASS "'diff $TPM_DATAFILE $TPM_DECDATA' passed." 110 RC=0 111 else 112 tst_res TFAIL $TPM_TMPFILE "'diff $TPM_DATAFILE $TPM_DECDATA' failed." 113 RC=1 114 fi 115 return $RC 116} 117 118cleanup() 119{ 120 rm -f $TPM_TMPFILE 2>&1 121 rm -f $TPM_ENCDATA 2>&1 122 rm -f $TPM_DECDATA 2>&1 123} 124 125# Function: main 126# 127# Description: - Execute all tests, report results. 128# 129# Exit: - zero on success 130# - non-zero on failure. 131 132TFAILCNT=0 # Set TFAILCNT to 0, increment on failure. 133RC=0 # Return code from tests. 134 135export TCID=tpmtoken_protect # Test ID 136export TST_TOTAL=3 # Total numner of tests in this file. 137export TST_COUNT=0 # Initialize identifier 138 139if [ -n "$TPM_NOPKCS11" ] 140then 141 tst_resm TINFO "'tpmtoken_protect' skipped." 142 exit $TFAILCNT 143fi 144 145setup || exit $RC # Exit if initializing testcases fails. 146 147test01 || TFAILCNT=$(($TFAILCNT+1)) 148test02 || TFAILCNT=$(($TFAILCNT+1)) 149test03 || TFAILCNT=$(($TFAILCNT+1)) 150 151cleanup 152 153exit $TFAILCNT 154