summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRobert Relyea <rrelyea@redhat.com>2021-08-24 09:27:02 -0700
committerRobert Relyea <rrelyea@redhat.com>2021-08-24 09:27:02 -0700
commitbe2f17bfcf7e8196eeba121bb32b3432799d2e4d (patch)
tree88c69802473c2c50cc864bf9d1c006b65c1d03da /tests
parent11b79748a7c99ab4e20f848b2d7717b374346ae1 (diff)
downloadnss-hg-be2f17bfcf7e8196eeba121bb32b3432799d2e4d.tar.gz
Bug 1726022 Update test case to verify fix.
Updated test cases to verify pbe caching fix. NOTE: putting passwords on databases are key to reproducing the original issue. Differential Revision: https://phabricator.services.mozilla.com/D123504
Diffstat (limited to 'tests')
-rwxr-xr-xtests/cert/cert.sh3
-rw-r--r--tests/common/init.sh2
-rwxr-xr-xtests/sdr/sdr.sh81
3 files changed, 70 insertions, 16 deletions
diff --git a/tests/cert/cert.sh b/tests/cert/cert.sh
index 84edb59f1..d7ec101fa 100755
--- a/tests/cert/cert.sh
+++ b/tests/cert/cert.sh
@@ -479,9 +479,6 @@ cert_add_cert()
##########################################################################
cert_all_CA()
{
- echo nss > ${PWFILE}
- echo > ${EMPTY_FILE}
-
ALL_CU_SUBJECT="CN=NSS Test CA, O=BOGUS NSS, L=Mountain View, ST=California, C=US"
cert_CA $CADIR TestCA -x "CTu,CTu,CTu" ${D_CA} "1"
diff --git a/tests/common/init.sh b/tests/common/init.sh
index 8c10bdd2a..6d74a6241 100644
--- a/tests/common/init.sh
+++ b/tests/common/init.sh
@@ -91,6 +91,8 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
FIPSBADPWFILE=${HOSTDIR}/tests.fipsbadpw
FIPSP12PWFILE=${HOSTDIR}/tests.fipsp12pw
+ echo nss > ${PWFILE}
+ echo > ${EMPTY_FILE}
echo "fIps140" > ${FIPSPWFILE}
echo "fips104" > ${FIPSBADPWFILE}
echo "pKcs12fips140" > ${FIPSP12PWFILE}
diff --git a/tests/sdr/sdr.sh b/tests/sdr/sdr.sh
index f846e9247..7321ebdbf 100755
--- a/tests/sdr/sdr.sh
+++ b/tests/sdr/sdr.sh
@@ -39,7 +39,6 @@ sdr_init()
VALUE1=$HOSTDIR/tests.v1.$$
VALUE2=$HOSTDIR/tests.v2.$$
VALUE3=$HOSTDIR/tests.v3.$$
-
T1="Test1"
T2="The quick brown fox jumped over the lazy dog"
T3="1234567"
@@ -64,35 +63,91 @@ sdr_init()
########################################################################
sdr_main()
{
+ # we need to make sure we are running these tests with the full
+ # shipped iteration count so we can detect time regressions
+ OLD_MAX_PBE_ITERATIONS=$NSS_MAX_MP_PBE_ITERATION_COUNT
+ unset NSS_MAX_MP_PBE_ITERATION_COUNT
+ ASCII_VALUE1=$HOSTDIR/tests.v1a.$$
+ ASCII_VALUE2=$HOSTDIR/tests.v2a.$$
+ ASCII_VALUE3=$HOSTDIR/tests.v3a.$$
+ ASCII_COMBINED=$HOSTDIR/tests.v4a.$$
+ COMBINED_300=$HOSTDIR/SDR/combined.$$
+ DECODED=$HOSTDIR/SDR/decoded.$$
+ LOG=$HOSTDIR/SDR/log.$$
+
echo "$SCRIPTNAME: Creating an SDR key/SDR Encrypt - Value 1"
- echo "sdrtest -d ${PROFILE} -o ${VALUE1} -t \"${T1}\""
- ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE1} -t "${T1}"
+ echo "sdrtest -d ${PROFILE} -o ${VALUE1} -t \"${T1}\" -f ${R_PWFILE}"
+ ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE1} -t "${T1}" -f ${R_PWFILE}
html_msg $? 0 "Creating SDR Key/Encrypt - Value 1"
echo "$SCRIPTNAME: SDR Encrypt - Value 2"
- echo "sdrtest -d ${PROFILE} -o ${VALUE2} -t \"${T2}\""
- ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE2} -t "${T2}"
+ echo "sdrtest -d ${PROFILE} -o ${VALUE2} -t \"${T2}\" -f ${R_PWFILE}"
+ ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE2} -t "${T2}" -f ${R_PWFILE}
html_msg $? 0 "Encrypt - Value 2"
echo "$SCRIPTNAME: SDR Encrypt - Value 3"
- echo "sdrtest -d ${PROFILE} -o ${VALUE3} -t \"${T3}\""
- ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE3} -t "${T3}"
+ echo "sdrtest -d ${PROFILE} -o ${VALUE3} -t \"${T3}\" -f ${R_PWFILE}"
+ ${BINDIR}/sdrtest -d ${PROFILE} -o ${VALUE3} -t "${T3}" -f ${R_PWFILE}
html_msg $? 0 "Encrypt - Value 3"
echo "$SCRIPTNAME: SDR Decrypt - Value 1"
- echo "sdrtest -d ${PROFILE} -i ${VALUE1} -t \"${T1}\""
- ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE1} -t "${T1}"
+ echo "sdrtest -d ${PROFILE} -i ${VALUE1} -t \"${T1}\" -f ${R_PWFILE}"
+ ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE1} -t "${T1}" -f ${R_PWFILE}
html_msg $? 0 "Decrypt - Value 1"
echo "$SCRIPTNAME: SDR Decrypt - Value 2"
- echo "sdrtest -d ${PROFILE} -i ${VALUE2} -t \"${T2}\""
- ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE2} -t "${T2}"
+ echo "sdrtest -d ${PROFILE} -i ${VALUE2} -t \"${T2}\" -f ${R_PWFILE}"
+ ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE2} -t "${T2}" -f ${R_PWFILE}
html_msg $? 0 "Decrypt - Value 2"
echo "$SCRIPTNAME: SDR Decrypt - Value 3"
- echo "sdrtest -d ${PROFILE} -i ${VALUE3} -t \"${T3}\""
- ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE3} -t "${T3}"
+ echo "sdrtest -d ${PROFILE} -i ${VALUE3} -t \"${T3}\" -f ${R_PWFILE}"
+ ${BINDIR}/sdrtest -d ${PROFILE} -i ${VALUE3} -t "${T3}" -f ${R_PWFILE}
html_msg $? 0 "Decrypt - Value 3"
+
+ echo "$SCRIPTNAME: pwdecrypt - 300 Entries"
+ # get base64 encoded encrypted versions of our tests
+ sdrtest -d ${PROFILE} -o ${ASCII_VALUE1} -a -t "${T1}" -f ${R_PWFILE}
+ sdrtest -d ${PROFILE} -o ${ASCII_VALUE2} -a -t "${T2}" -f ${R_PWFILE}
+ sdrtest -d ${PROFILE} -o ${ASCII_VALUE3} -a -t "${T3}" -f ${R_PWFILE}
+ # make each encoded span exactly one line
+ touch ${ASCII_COMBINED}
+ cat ${ASCII_VALUE1} | tr -d '\n' >> ${ASCII_COMBINED}
+ echo >> ${ASCII_COMBINED}
+ cat ${ASCII_VALUE2} | tr -d '\n' >> ${ASCII_COMBINED}
+ echo >> ${ASCII_COMBINED}
+ cat ${ASCII_VALUE3} | tr -d '\n' >> ${ASCII_COMBINED}
+ echo >> ${ASCII_COMBINED}
+ #concantentate the 3 entries 100 times to produce 300 entries
+ touch ${COMBINED_300}
+ for ((i=0;i<100;i++)); do
+ cat ${ASCII_COMBINED} >> ${COMBINED_300}
+ done
+ echo "time pwdecrypt -i ${COMBINED_300} -o ${DECODED} -l ${LOG} -d ${PROFILE} -f ${R_PWFILE}"
+ dtime=$(time -p (pwdecrypt -i ${COMBINED_300} -o ${DECODED} -l ${LOG} -d ${PROFILE} -f ${R_PWFILE}) 2>&1 1>/dev/null)
+ echo "------------- result ----------------------"
+ cat ${DECODED}
+ wc -c ${DECODED}
+ RARRAY=($(wc -c ${DECODED}))
+ CHARCOUNT=9800
+ if [ "${OS_ARCH}" = "WINNT" -o "${OS_ARCH}" = "WIN95" -o "${OS_ARCH}" = "OS2" ]; then
+ # includes include carriage returns as well as line feeds for new line
+ CHARCOUNT=10100
+ fi
+ html_msg ${RARRAY[0]} ${CHARCOUNT} "pwdecrypt success"
+ echo "------------- log ----------------------"
+ cat ${LOG}
+ wc -c ${LOG}
+ RARRAY=($(wc -c ${LOG}))
+ html_msg ${RARRAY[0]} 0 "pwdecrypt no error log"
+ echo "------------- time ----------------------"
+ echo $dtime
+ # now parse the real time to make sure it's subsecond
+ RARRAY=($dtime)
+ TIMEARRAY=(${RARRAY[1]//./ })
+ echo "${TIMEARRAY[0]} seconds"
+ html_msg ${TIMEARRAY[0]} 0 "pwdecrypt no time regression"
+ export NSS_MAX_MP_PBE_ITERATION_COUNT=$OLD_MAX_PBE_ITERATIONS
}
############################## sdr_cleanup #############################