2018-05-04 16:08:28 +02:00
|
|
|
#! /bin/bash
|
2015-10-21 05:03:22 +02:00
|
|
|
#
|
2018-05-04 16:08:28 +02:00
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
2015-10-21 05:03:22 +02:00
|
|
|
|
|
|
|
########################################################################
|
|
|
|
#
|
|
|
|
# mozilla/security/nss/tests/cipher/cipher.sh
|
|
|
|
#
|
|
|
|
# Script to test NSS ciphers
|
|
|
|
#
|
|
|
|
# needs to work on all Unix and Windows platforms
|
|
|
|
#
|
|
|
|
# special strings
|
|
|
|
# ---------------
|
|
|
|
# FIXME ... known problems, search for this string
|
|
|
|
# NOTE .... unexpected behavior
|
|
|
|
#
|
|
|
|
########################################################################
|
|
|
|
|
|
|
|
############################## cipher_init #############################
|
|
|
|
# local shell function to initialize this script
|
|
|
|
########################################################################
|
|
|
|
cipher_init()
|
|
|
|
{
|
|
|
|
SCRIPTNAME="cipher.sh"
|
|
|
|
if [ -z "${CLEANUP}" ] ; then # if nobody else is responsible for
|
|
|
|
CLEANUP="${SCRIPTNAME}" # cleaning this script will do it
|
|
|
|
fi
|
|
|
|
if [ -z "${INIT_SOURCED}" ] ; then
|
|
|
|
cd ../common
|
|
|
|
. ./init.sh
|
|
|
|
fi
|
|
|
|
SCRIPTNAME="cipher.sh"
|
|
|
|
html_head "Cipher Tests"
|
|
|
|
|
|
|
|
CIPHERDIR=${HOSTDIR}/cipher
|
|
|
|
CIPHERTESTDIR=${QADIR}/../cmd/bltest
|
2018-05-04 16:08:28 +02:00
|
|
|
GCMTESTDIR=${QADIR}/../cmd/pk11gcmtest
|
2015-10-21 05:03:22 +02:00
|
|
|
D_CIPHER="Cipher.$version"
|
|
|
|
|
|
|
|
CIPHER_TXT=${QADIR}/cipher/cipher.txt
|
2018-05-04 16:08:28 +02:00
|
|
|
GCM_TXT=${QADIR}/cipher/gcm.txt
|
2015-10-21 05:03:22 +02:00
|
|
|
|
|
|
|
mkdir -p ${CIPHERDIR}
|
|
|
|
|
|
|
|
cd ${CIPHERDIR}
|
|
|
|
P_CIPHER=.
|
|
|
|
if [ -n "${MULTIACCESS_DBM}" ]; then
|
|
|
|
P_CIPHER="multiaccess:${D_CIPHER}"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
############################## cipher_main #############################
|
|
|
|
# local shell function to test NSS ciphers
|
|
|
|
########################################################################
|
|
|
|
cipher_main()
|
|
|
|
{
|
|
|
|
while read EXP_RET PARAM TESTNAME
|
|
|
|
do
|
|
|
|
if [ -n "$EXP_RET" -a "$EXP_RET" != "#" ] ; then
|
|
|
|
PARAM=`echo $PARAM | sed -e "s/_-/ -/g"`
|
|
|
|
TESTNAME=`echo $TESTNAME | sed -e "s/_/ /g"`
|
|
|
|
echo "$SCRIPTNAME: $TESTNAME --------------------------------"
|
|
|
|
failedStr=""
|
|
|
|
inOff=0
|
|
|
|
res=0
|
|
|
|
while [ $inOff -lt 8 ]
|
|
|
|
do
|
|
|
|
outOff=0
|
|
|
|
while [ $outOff -lt 8 ]
|
|
|
|
do
|
|
|
|
echo "bltest -T -m $PARAM -d $CIPHERTESTDIR -1 $inOff -2 $outOff"
|
2018-05-04 16:08:28 +02:00
|
|
|
${PROFTOOL} ${BINDIR}/bltest${PROG_SUFFIX} -T -m $PARAM -d $CIPHERTESTDIR -1 $inOff -2 $outOff
|
2015-10-21 05:03:22 +02:00
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
failedStr="$failedStr[$inOff:$outOff]"
|
|
|
|
fi
|
|
|
|
outOff=`expr $outOff + 1`
|
|
|
|
done
|
|
|
|
inOff=`expr $inOff + 1`
|
|
|
|
done
|
|
|
|
if [ -n "$failedStr" ]; then
|
|
|
|
html_msg 1 $EXP_RET "$TESTNAME (Failed in/out offset pairs:" \
|
|
|
|
" $failedStr)"
|
|
|
|
else
|
|
|
|
html_msg $res $EXP_RET "$TESTNAME"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done < ${CIPHER_TXT}
|
|
|
|
}
|
|
|
|
|
2018-05-04 16:08:28 +02:00
|
|
|
############################## cipher_gcm #############################
|
|
|
|
# local shell function to test NSS AES GCM
|
|
|
|
########################################################################
|
|
|
|
cipher_gcm()
|
|
|
|
{
|
|
|
|
while read EXP_RET INPUT_FILE TESTNAME
|
|
|
|
do
|
|
|
|
if [ -n "$EXP_RET" -a "$EXP_RET" != "#" ] ; then
|
|
|
|
TESTNAME=`echo $TESTNAME | sed -e "s/_/ /g"`
|
|
|
|
echo "$SCRIPTNAME: $TESTNAME --------------------------------"
|
|
|
|
echo "pk11gcmtest aes kat gcm $GCMTESTDIR/tests/$INPUT_FILE"
|
|
|
|
${PROFTOOL} ${BINDIR}/pk11gcmtest aes kat gcm $GCMTESTDIR/tests/$INPUT_FILE
|
|
|
|
html_msg $? $EXP_RET "$TESTNAME"
|
|
|
|
fi
|
|
|
|
done < ${GCM_TXT}
|
|
|
|
}
|
|
|
|
|
2015-10-21 05:03:22 +02:00
|
|
|
############################## cipher_cleanup ############################
|
|
|
|
# local shell function to finish this script (no exit since it might be
|
|
|
|
# sourced)
|
|
|
|
########################################################################
|
|
|
|
cipher_cleanup()
|
|
|
|
{
|
|
|
|
html "</TABLE><BR>"
|
|
|
|
cd ${QADIR}
|
|
|
|
. common/cleanup.sh
|
|
|
|
}
|
|
|
|
|
|
|
|
################## main #################################################
|
|
|
|
|
2018-05-04 16:08:28 +02:00
|
|
|
# When building without softoken, bltest isn't built. It was already
|
|
|
|
# built and the cipher suite run as part of an nss-softoken build.
|
|
|
|
if [ ! -x ${DIST}/${OBJDIR}/bin/bltest${PROG_SUFFIX} ]; then
|
|
|
|
echo "bltest not built, skipping this test." >> ${LOGFILE}
|
cherry-picked mozilla NSS upstream changes (to rev 82de44ead36f, which is on par with 3.18):
bug1095307, bug1073330(backout), bug1084986, bug1050069, bug942172, bug1054547, bug532081, bug1096348, bug1058870, bug1093940, bug1102985, bug1112461, bug1094492, bug112029, bug1119983, bug1120685, bug1120691, bug1113632, bug863076, bug1082973, bug1124539, bug1117617, bug1117621, bug1121273, bug753136, bug921684, bug1132818, bug1125375, bug647690, bug1055441, bug1134455, bug975010, bug950369, bug1128367, bug1129573, bug1136095, bug1117897, bug1113453, bug1061725, bug1073330, bug1111901, bug1083900, bug1136095, bug1138820, bug1096741, bug1134548, bug345725, bug950348, bug950344, bug1151037, bug991783, bug1153994
2018-07-11 16:42:30 +02:00
|
|
|
res=0
|
2018-05-04 16:08:28 +02:00
|
|
|
html_msg $res $EXP_RET "$TESTNAME"
|
|
|
|
return 0
|
|
|
|
fi
|
2015-10-21 05:03:22 +02:00
|
|
|
cipher_init
|
cherry-picked mozilla NSS upstream changes (to rev b07697c94038, which is on par with 3.16.2):
bug753136, bug999893, bug1011090, bug1009785, bug1009794, bug421391, bug1011229, bug1013088, bug996237, bug970539, bug1016567, bug485732, bug334013, bug959864, bug1016836, bug1016811, bug1018536, bug996250, bug1009227, bug963150, bug1007126, bug952572, bug1021102, bug1020395, bug902171
2018-07-11 14:39:02 +02:00
|
|
|
# Skip cipher_main if this an NSS without softoken build.
|
|
|
|
if [ "${NSS_BUILD_WITHOUT_SOFTOKEN}" != "1" ]; then
|
|
|
|
cipher_main
|
|
|
|
fi
|
|
|
|
# Skip cipher_gcm if this is a softoken only build.
|
|
|
|
if [ "${NSS_BUILD_SOFTOKEN_ONLY}" != "1" ]; then
|
|
|
|
cipher_gcm
|
|
|
|
fi
|
2015-10-21 05:03:22 +02:00
|
|
|
cipher_cleanup
|