tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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