tor-browser

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

sdr.sh (6524B)


      1 #! /bin/bash
      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 ########################################################################
      8 #
      9 # mozilla/security/nss/tests/sdr/sdr.sh
     10 #
     11 # Script to start test basic functionallity of NSS sdr
     12 #
     13 # needs to work on all Unix and Windows platforms
     14 #
     15 # special strings
     16 # ---------------
     17 #   FIXME ... known problems, search for this string
     18 #   NOTE .... unexpected behavior
     19 #
     20 ########################################################################
     21 
     22 ############################## sdr_init ################################
     23 # local shell function to initialize this script
     24 ########################################################################
     25 sdr_init()
     26 {
     27  SCRIPTNAME=sdr.sh
     28  if [ -z "${CLEANUP}" ] ; then
     29      CLEANUP="${SCRIPTNAME}"
     30  fi
     31  
     32  if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
     33      cd ../common
     34      . ./init.sh
     35  fi
     36  SCRIPTNAME=sdr.sh
     37 
     38  #temporary files
     39  VALUE1=$HOSTDIR/tests.v1.$$
     40  VALUE2=$HOSTDIR/tests.v2.$$
     41  VALUE3=$HOSTDIR/tests.v3.$$
     42  VALUE4=$HOSTDIR/tests.v4.$$
     43  T1="Test1"
     44  T2="The quick brown fox jumped over the lazy dog"
     45  T3="1234567"
     46  T4="TestDES3"
     47 
     48  SDRDIR=${HOSTDIR}/SDR
     49  D_SDR="SDR.$version"
     50  if [ ! -d ${SDRDIR} ]; then
     51    mkdir -p ${SDRDIR}
     52  fi
     53 
     54  PROFILE=.
     55  if [ -n "${MULTIACCESS_DBM}" ]; then
     56     PROFILE="multiaccess:${D_SDR}"
     57  fi
     58 
     59  cd ${SDRDIR}
     60  html_head "SDR Tests"
     61 }
     62 
     63 ############################## sdr_main ################################
     64 # local shell function to test NSS SDR
     65 ########################################################################
     66 sdr_main()
     67 {
     68  # we need to make sure we are running these tests with the full
     69  # shipped iteration count so we can detect time regressions
     70  OLD_MAX_PBE_ITERATIONS=$NSS_MAX_MP_PBE_ITERATION_COUNT
     71  unset NSS_MAX_MP_PBE_ITERATION_COUNT
     72  ASCII_VALUE1=$HOSTDIR/tests.v1a.$$
     73  ASCII_VALUE2=$HOSTDIR/tests.v2a.$$
     74  ASCII_VALUE3=$HOSTDIR/tests.v3a.$$
     75  ASCII_VALUE4=$HOSTDIR/tests.v4a.$$
     76  ASCII_COMBINED=$HOSTDIR/tests.v5a.$$
     77  COMBINED_400=$HOSTDIR/SDR/combined.$$
     78  DECODED=$HOSTDIR/SDR/decoded.$$
     79  LOG=$HOSTDIR/SDR/log.$$
     80 
     81  echo "$SCRIPTNAME: Creating an SDR key/SDR Encrypt - Value 1"
     82  echo "sdrtest -d ${PROFILE} -o ${VALUE1} -t \"${T1}\" -f ${R_PWFILE}"
     83  ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE1} -t "${T1}" -f ${R_PWFILE}
     84  html_msg $? 0 "Creating SDR Key/Encrypt - Value 1"
     85 
     86  echo "$SCRIPTNAME: SDR Encrypt - Value 2"
     87  echo "sdrtest -d ${PROFILE} -o ${VALUE2} -t \"${T2}\"  -f ${R_PWFILE}"
     88  ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE2} -t "${T2}" -f ${R_PWFILE}
     89  html_msg $? 0 "Encrypt - Value 2"
     90 
     91  echo "$SCRIPTNAME: SDR Encrypt - Value 3"
     92  echo "sdrtest -d ${PROFILE} -o ${VALUE3} -t \"${T3}\"  -f ${R_PWFILE}"
     93  ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE3} -t "${T3}" -f ${R_PWFILE}
     94  html_msg $? 0 "Encrypt - Value 3"
     95 
     96  echo "$SCRIPTNAME: Creating an DES3 SDR key/SDR Encrypt - Value 4"
     97  echo "sdrtest -d ${PROFILE} -o ${VALUE4} -t \"${T4}\"  -f ${R_PWFILE}"
     98  ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE4} -t "${T4}" -f ${R_PWFILE} -m des3
     99  html_msg $? 0 "Creating an DES3 SDR key/Encrypt - Value 4"
    100 
    101  echo "$SCRIPTNAME: SDR Decrypt - Value 1"
    102  echo "sdrtest -d ${PROFILE} -i ${VALUE1} -t \"${T1}\"  -f ${R_PWFILE}"
    103  ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE1} -t "${T1}" -f ${R_PWFILE}
    104  html_msg $? 0 "Decrypt - Value 1"
    105 
    106  echo "$SCRIPTNAME: SDR Decrypt - Value 2"
    107  echo "sdrtest -d ${PROFILE} -i ${VALUE2} -t \"${T2}\"  -f ${R_PWFILE}"
    108  ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE2} -t "${T2}" -f ${R_PWFILE}
    109  html_msg $? 0 "Decrypt - Value 2"
    110 
    111  echo "$SCRIPTNAME: SDR Decrypt - Value 3"
    112  echo "sdrtest -d ${PROFILE} -i ${VALUE3} -t \"${T3}\"  -f ${R_PWFILE}"
    113  ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE3} -t "${T3}" -f ${R_PWFILE}
    114  html_msg $? 0 "Decrypt - Value 3"
    115 
    116  echo "$SCRIPTNAME: DES3 SDR Decrypt - Value 4"
    117  echo "sdrtest -d ${PROFILE} -i ${VALUE4} -t \"${T4}\"  -f ${R_PWFILE}"
    118  ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE4} -t "${T4}" -f ${R_PWFILE}
    119  html_msg $? 0 "DES3 Decrypt - Value 4"
    120 
    121  echo "$SCRIPTNAME: pwdecrypt - 300 Entries"
    122  # get base64 encoded encrypted versions of our tests
    123  sdrtest -d ${PROFILE} -o ${ASCII_VALUE1} -a -t "${T1}"  -f ${R_PWFILE}
    124  sdrtest -d ${PROFILE} -o ${ASCII_VALUE2} -a -t "${T2}"  -f ${R_PWFILE}
    125  sdrtest -d ${PROFILE} -o ${ASCII_VALUE3} -a -t "${T3}"  -f ${R_PWFILE}
    126  sdrtest -d ${PROFILE} -o ${ASCII_VALUE4} -a -t "${T4}"  -f ${R_PWFILE} -m des3
    127  # make each encoded span exactly one line
    128  touch ${ASCII_COMBINED}
    129  cat ${ASCII_VALUE1} | tr -d '\n' >> ${ASCII_COMBINED}
    130  echo >> ${ASCII_COMBINED}
    131  cat ${ASCII_VALUE2} | tr -d '\n' >> ${ASCII_COMBINED}
    132  echo >> ${ASCII_COMBINED}
    133  cat ${ASCII_VALUE3} | tr -d '\n' >> ${ASCII_COMBINED}
    134  echo >> ${ASCII_COMBINED}
    135  cat ${ASCII_VALUE4} | tr -d '\n' >> ${ASCII_COMBINED}
    136  echo >> ${ASCII_COMBINED}
    137  #concantentate the 4 entries 100 times to produce 400 entries
    138  touch ${COMBINED_400}
    139  for ((i=0;i<100;i++)); do
    140    cat ${ASCII_COMBINED} >> ${COMBINED_400}
    141  done
    142  echo "time pwdecrypt -i ${COMBINED_400} -o ${DECODED} -l ${LOG} -d ${PROFILE}  -f ${R_PWFILE}"
    143  dtime=$(time -p (pwdecrypt -i ${COMBINED_400} -o ${DECODED} -l ${LOG} -d ${PROFILE}  -f ${R_PWFILE}) 2>&1 1>/dev/null)
    144  echo "------------- result ----------------------"
    145  cat ${DECODED}
    146  wc -c ${DECODED}
    147  RARRAY=($(wc -c ${DECODED}))
    148  CHARCOUNT=12000
    149  if [ "${OS_ARCH}" = "WINNT" ]; then
    150    # includes include carriage returns as well as line feeds for new line
    151    CHARCOUNT=12400
    152  fi
    153  html_msg ${RARRAY[0]} ${CHARCOUNT} "pwdecrypt success"
    154  echo "------------- log ----------------------"
    155  cat ${LOG}
    156  wc -c ${LOG}
    157  RARRAY=($(wc -c ${LOG}))
    158  html_msg ${RARRAY[0]} 0 "pwdecrypt no error log"
    159  echo "------------- time ----------------------"
    160  echo $dtime
    161  # now parse the real time to make sure it's subsecond
    162  RARRAY=($dtime)
    163  TIMEARRAY=(${RARRAY[1]//./ })
    164  echo "${TIMEARRAY[0]} seconds"
    165  html_msg ${TIMEARRAY[0]} 0 "pwdecrypt no time regression"
    166  export NSS_MAX_MP_PBE_ITERATION_COUNT=$OLD_MAX_PBE_ITERATIONS
    167 }
    168 
    169 ############################## sdr_cleanup #############################
    170 # local shell function to finish this script (no exit since it might be
    171 # sourced)
    172 ########################################################################
    173 sdr_cleanup()
    174 {
    175  html "</TABLE><BR>"
    176  cd ${QADIR}
    177  . common/cleanup.sh
    178 }
    179 
    180 sdr_init
    181 sdr_main
    182 sdr_cleanup