Sync tests on NSS_3_11_BRANCH with trunk, primarily for ECC tests.

git-svn-id: svn://10.0.0.236/branches/NSS_3_11_BRANCH@195230 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
nelson%bolyard.com
2006-04-24 05:01:57 +00:00
parent 1b9d59f1e0
commit ad1040a8ec
6 changed files with 215 additions and 14 deletions

View File

@@ -78,7 +78,7 @@
#
########################################################################
TESTS="cert ssl sdr cipher smime crmf perf tools fips dbtests"
TESTS="cipher perf cert dbtests tools fips sdr crmf smime ssl"
SCRIPTNAME=all.sh
CLEANUP="${SCRIPTNAME}"
cd `dirname $0` # will cause problems if sourced

View File

@@ -885,8 +885,79 @@ MODSCRIPT
fi
}
############################## cert_extensions ###############################
# local shell function to test cert extensions generation.
##############################################################################
############################## cert_stresscerts ################################
checkRes()
{
res=$1
filterList=$2
[ $res -ne 0 ] && return 1
for fl in `echo $filterList | tr \| ' '`; do
fl="`echo $fl | tr _ ' '`"
expStat=0
if [ X`echo "$fl" | cut -c 1` = 'X!' ]; then
expStat=1
fl=`echo $fl | tr -d '!'`
fi
certutil -d ${CERT_EXTENSIONS_DIR} -L -n $CERTNAME | grep "$fl" >/dev/null 2>&1
[ $? -ne $expStat ] && return 1
done
return 0
}
cert_extensions()
{
CERTNAME=TestExt
cert_create_cert ${CERT_EXTENSIONS_DIR} $CERTNAME 90 ${D_CERT_EXTENSTIONS}
TARG_FILE=${CERT_EXTENSIONS_DIR}/test.args
CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US"
count=0
while read arg opt filterList; do
if [ X"`echo $arg | cut -c 1`" = "X#" ]; then
continue
fi
if [ X"`echo $arg | cut -c 1`" = "X!" ]; then
testName="$filterList"
continue
fi
if [ X"$arg" = "X=" ]; then
count=`expr $count + 1`
echo "#################################################"
CU_ACTION="Testing $testName"
certutil -d ${CERT_EXTENSIONS_DIR} -D -n $CERTNAME
echo certutil -d ${CERT_EXTENSIONS_DIR} -S -n $CERTNAME -t "u,u,u" \
-s "${CU_SUBJECT}" -x -f ${R_PWFILE} -z "${R_NOISE_FILE}" -$opt < $TARG_FILE
certutil -d ${CERT_EXTENSIONS_DIR} -S -n $CERTNAME -t "u,u,u" -o /tmp/cert \
-s "${CU_SUBJECT}" -x -f ${R_PWFILE} -z "${R_NOISE_FILE}" -$opt < $TARG_FILE
ret=$?
echo "certutil options:"
cat $TARG_FILE
checkRes $ret "$filterList"
RET=$?
if [ "$RET" -ne 0 ]; then
CERTFAILED=$RET
html_failed "<TR><TD>${CU_ACTION} ($RET) "
cert_log "ERROR: ${CU_ACTION} failed $RET"
else
html_passed "<TR><TD>${CU_ACTION}"
fi
rm -f $TARG_FILE
else
echo $arg >> $TARG_FILE
fi
done < ${QADIR}/cert/certext.txt
}
############################## cert_crl_ssl ############################
# local shell function to generate certs and crls for SSL tests
########################################################################
cert_crl_ssl()
@@ -1096,6 +1167,7 @@ cert_extended_ssl
cert_ssl
cert_smime_client
cert_fips
cert_extensions
cert_crl_ssl
if [ -n "$DO_DIST_ST" -a "$DO_DIST_ST" = "TRUE" ] ; then
cert_stresscerts

View File

@@ -0,0 +1,132 @@
# File syntax:
# '#' comments.
# If the line starts from '!'('! TEST_N Test Name String'),
# then 'Test Name String' will be the name of a test(starting
# from second space till the rest of the line).
# All uncommented lines are hard codded answers to certutil
# extension questions.
# Line '= N string1|string2|string3': '=' is a stop sign
# of certutil inputs and start of the test. 'N' is the number
# of extension that will be tested. 'string1|string2|string3'
# are grep patterns for test result verification. '_' in stringN
# will be replaced to a space.
# ################################################################
! TEST_1 Certificate Key Usage Extension
0
1
2
3
4
5
6
10
n
= 1 Certificate_Key_Usage|Digital_Signature|Non-Repudiation|Key_Encipherment|Data_Encipherment|Key_Agreement|Certificate_Signing|CRL_Signing
# ################################################################
! TEST_2 Certificate Key Usage Extension
0
1
2
3
4
5
6
10
y
= 1 Certificate_Key_Usage|Digital_Signature|Critical:_True
# ################################################################
! TEST_3 Certificate Basic Constraints Extension
y
-1
n
= 2 Name:_Certificate_Basic_Constraints|Data:_Is_a_CA_with_no_maximum
# ################################################################
! TEST_4 Certificate Basic Constraints Extension
n
-1
y
= 2 Name:_Certificate_Basic_Constraints|Data:_Is_not_a_CA|Critical:_True
# ################################################################
! TEST_5 Certificate Authority Key Identifier Extension
y
12341235123
y
= 3 Name:_Certificate_Authority_Key_Identifier|Critical:_True|Key_ID:|12341235123
# ################################################################
! TEST_6 Certificate Authority Key Identifier Extension
y
3
test.com
214123
y
= 3 Name:_Certificate_Authority_Key_Identifier|Critical:_True|Issuer:|DNS_name:_"test.com"|Serial_Number:|214123
# ################################################################
! TEST_7 CRL Distribution Points Extension
1
1
InstanceOfOtherName
2
rfc822Name
3
test.com
4
test@test.com
6
ediPArtyName
8
ipAddress
9
123451235
10
0
10
n
n
= 4 Name:_CRL_Distribution_Points|InstanceOfOtherName|rfc822Name|test.com|test@test.com|ediPArtyName
# #################################################################
! TEST_8 CRL Distribution Points Extension
2
SN=asdfsdf
4
3
test.com
10
n
n
= 4 Name:_CRL_Distribution_Points|X520_Title|"asdfsdf"|Reasons:|DNS_name:_"test.com"
# ################################################################
! TEST_9 Certificate Type Extension
0
1
2
10
n
= 5 Name:_Certificate_Type|Data:_<SSL_Client,SSL_Server,S/MIME>
# ################################################################
! TEST_10 Extended Key Usage Extension
0
1
2
3
4
5
6
10
y
= 6 Name:_Extended_Key_Usage|Critical:_True|TLS_Web_Server_Authentication_Certificate|TLS_Web_Client_Authentication_Certificate|Code_Signing_Certificate|E-Mail_Protection_Certificate|Time_Stamping_Certifcate|OCSP_Responder_Certificate|Strong_Crypto_Export_Approved
# ################################################################
! TEST_11 Certificate Key Usage Extension
1
2
3
4
5
6
10
n
= 1 Certificate_Key_Usage|!Digital_Signature|Non-Repudiation|Key_Encipherment|Data_Encipherment|Key_Agreement|Certificate_Signing|CRL_Signing

View File

@@ -386,6 +386,8 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
EXT_SERVERDIR=${HOSTDIR}/ext_server
EXT_CLIENTDIR=${HOSTDIR}/ext_client
CERT_EXTENSIONS_DIR=${HOSTDIR}/cert_extensions
PWFILE=${TMP}/tests.pw.$$
NOISE_FILE=${TMP}/tests_noise.$$
CORELIST_FILE=${TMP}/clist.$$
@@ -408,6 +410,7 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
D_FIPS="FIPS.$version"
D_EXT_SERVER="ExtendedServer.$version"
D_EXT_CLIENT="ExtendedClient.$version"
D_CERT_EXTENSTIONS="CertExtensions.$version"
# we need relative pathnames of these files abd directories, since our
# tools can't handle the unix style absolut pathnames on cygnus
@@ -421,6 +424,7 @@ if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then
R_EVEDIR=../eve
R_EXT_SERVERDIR=../ext_server
R_EXT_CLIENTDIR=../ext_client
R_CERT_EXT=../cert_extensions
#
# profiles are either paths or domains depending on the setting of

View File

@@ -84,10 +84,6 @@ dbtest_init()
# in the output.log, otherwise we can't tell what's a real error
RONLY_DIR=${HOSTDIR}/ronlydir
EMPTY_DIR=${HOSTDIR}/emptydir
grep "SUCCESS: SSL passed" $CERT_LOG_FILE >/dev/null || {
html_head "SSL Test failure"
Exit : "Fatal - SSL of cert.sh needs to pass first"
}
html_head "CERT and Key DB Tests"

View File

@@ -14,15 +14,12 @@
# noECC 0 -r -w_bogus_-n_"Test_User" TLS Request don't require client auth (bad password)
#
# ############################ ECC ciphers ############################
# Currently, session reuse does not work for ECDH-ECDSA and ECDHE-ECDSA
# ciphers (see Bug 238051). Setting up 1000 connections without session
# reuse would take too long, so use only 10 connections
#
ECC 0 -c_:C009 -c_10_-C_:C009_-N_-T Stress SSL3 ECDHE-ECDSA AES 128 CBC with SHA (no reuse)
ECC 0 -c_:C013 -c_100_-C_:C013_-T Stress SSL3 ECDHE-RSA AES 128 CBC with SHA
ECC 0 -c_:C004 -c_10_-C_:C004_-N Stress TLS ECDH-ECDSA AES 128 CBC with SHA (no reuse)
# ECC 0 -c_:C00E -c_10_-C_:C00E_-N Stress TLS ECDH-RSA AES 128 CBC with SHA (no reuse)
ECC 0 -c_:C013 -c_100_-C_:C013 Stress TLS ECDHE-RSA AES 128 CBC with SHA
ECC 0 -c_:C009 -c_100_-C_:C009_-N_-T Stress SSL3 ECDHE-ECDSA AES 128 CBC with SHA (no reuse)
ECC 0 -c_:C013 -c_1000_-C_:C013_-T Stress SSL3 ECDHE-RSA AES 128 CBC with SHA
ECC 0 -c_:C004 -2_-c_100_-C_:C004_-N Stress TLS ECDH-ECDSA AES 128 CBC with SHA (no reuse)
# ECC 0 -c_:C00E -2_-c_100_-C_:C00E_-N Stress TLS ECDH-RSA AES 128 CBC with SHA (no reuse)
ECC 0 -c_:C013 -2_-c_1000_-C_:C013 Stress TLS ECDHE-RSA AES 128 CBC with SHA
#
# add client auth versions here...
#