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