tdea.sh (2903B)
1 #!/bin/sh 2 # 3 # This Source Code Form is subject to the terms of the Mozilla Public 4 # License, v. 2.0. If a copy of the MPL was not distributed with this 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 # 7 # A Bourne shell script for running the NIST tdea Algorithm Validation Suite 8 # 9 # Before you run the script, set your PATH, LD_LIBRARY_PATH, ... environment 10 # variables appropriately so that the fipstest command and the NSPR and NSS 11 # shared libraries/DLLs are on the search path. Then run this script in the 12 # directory where the REQUEST (.req) files reside. The script generates the 13 # RESPONSE (.rsp) files in the same directory. 14 15 BASEDIR=${1-.} 16 TESTDIR=${BASEDIR}/TDES 17 COMMAND=${2-run} 18 REQDIR=${TESTDIR}/req 19 RSPDIR=${TESTDIR}/resp 20 21 #CBC_Known_Answer_tests 22 #Initial Permutation KAT 23 #Permutation Operation KAT 24 #Subsitution Table KAT 25 #Variable Key KAT 26 #Variable PlainText KAT 27 cbc_kat_requests=" 28 TCBCinvperm.req 29 TCBCpermop.req 30 TCBCsubtab.req 31 TCBCvarkey.req 32 TCBCvartext.req 33 " 34 35 #CBC Monte Carlo KATs 36 cbc_monte_requests=" 37 TCBCMonte1.req 38 TCBCMonte2.req 39 TCBCMonte3.req 40 " 41 #Multi-block Message KATs 42 cbc_mmt_requests=" 43 TCBCMMT1.req 44 TCBCMMT2.req 45 TCBCMMT3.req 46 " 47 48 ecb_kat_requests=" 49 TECBinvperm.req 50 TECBpermop.req 51 TECBsubtab.req 52 TECBvarkey.req 53 TECBvartext.req 54 " 55 56 ecb_monte_requests=" 57 TECBMonte1.req 58 TECBMonte2.req 59 TECBMonte3.req 60 " 61 62 ecb_mmt_requests=" 63 TECBMMT1.req 64 TECBMMT2.req 65 TECBMMT3.req 66 " 67 68 69 if [ ${COMMAND} = "verify" ]; then 70 result=0 71 for request in $cbc_kat_requests $cbc_monte_requests $cbc_mmt_requests $ecb_kat_requests $ecb_monte_requests $ecb_mmt_requests 72 do 73 sh ./validate1.sh ${TESTDIR} $request "-e /^NumKeys/d" 74 last_result=$? 75 result=`expr $result + $last_result` 76 done 77 exit $result 78 fi 79 80 test -d "${RSPDIR}" || mkdir "${RSPDIR}" 81 82 for request in $cbc_kat_requests; do 83 response=`echo $request | sed -e "s/req/rsp/"` 84 echo $request $response 85 fipstest tdea kat cbc ${REQDIR}/$request > ${RSPDIR}/$response 86 done 87 for request in $cbc_mmt_requests; do 88 response=`echo $request | sed -e "s/req/rsp/"` 89 echo $request $response 90 fipstest tdea mmt cbc ${REQDIR}/$request > ${RSPDIR}/$response 91 done 92 for request in $cbc_monte_requests; do 93 response=`echo $request | sed -e "s/req/rsp/"` 94 echo $request $response 95 fipstest tdea mct cbc ${REQDIR}/$request > ${RSPDIR}/$response 96 done 97 for request in $ecb_kat_requests; do 98 response=`echo $request | sed -e "s/req/rsp/"` 99 echo $request $response 100 fipstest tdea kat ecb ${REQDIR}/$request > ${RSPDIR}/$response 101 done 102 for request in $ecb_mmt_requests; do 103 response=`echo $request | sed -e "s/req/rsp/"` 104 echo $request $response 105 fipstest tdea mmt ecb ${REQDIR}/$request > ${RSPDIR}/$response 106 done 107 for request in $ecb_monte_requests; do 108 response=`echo $request | sed -e "s/req/rsp/"` 109 echo $request $response 110 fipstest tdea mct ecb ${REQDIR}/$request > ${RSPDIR}/$response 111 done 112 exit 0