1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/tests/common/init.sh Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,652 @@ 1.4 +#! /bin/bash 1.5 +# 1.6 +# This Source Code Form is subject to the terms of the Mozilla Public 1.7 +# License, v. 2.0. If a copy of the MPL was not distributed with this 1.8 +# file, You can obtain one at http://mozilla.org/MPL/2.0/. 1.9 + 1.10 +######################################################################## 1.11 +# 1.12 +# mozilla/security/nss/tests/common/init.sh 1.13 +# 1.14 +# initialization for NSS QA, can be included multiple times 1.15 +# from all.sh and the individual scripts 1.16 +# 1.17 +# variables, utilities and shellfunctions global to NSS QA 1.18 +# needs to work on all Unix and Windows platforms 1.19 +# 1.20 +# included from 1.21 +# ------------- 1.22 +# all.sh 1.23 +# ssl.sh 1.24 +# sdr.sh 1.25 +# cipher.sh 1.26 +# perf.sh 1.27 +# cert.sh 1.28 +# smime.sh 1.29 +# tools.sh 1.30 +# fips.sh 1.31 +# 1.32 +# special strings 1.33 +# --------------- 1.34 +# FIXME ... known problems, search for this string 1.35 +# NOTE .... unexpected behavior 1.36 +# 1.37 +# NOTE: 1.38 +# ----- 1.39 +# Unlike the old QA this is based on files sourcing each other 1.40 +# This is done to save time, since a great portion of time is lost 1.41 +# in calling and sourcing the same things multiple times over the 1.42 +# network. Also, this way all scripts have all shell function available 1.43 +# and a completely common environment 1.44 +# 1.45 +######################################################################## 1.46 + 1.47 +NSS_STRICT_SHUTDOWN=1 1.48 +export NSS_STRICT_SHUTDOWN 1.49 + 1.50 +# Init directories based on HOSTDIR variable 1.51 +if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then 1.52 + init_directories() 1.53 + { 1.54 + TMP=${HOSTDIR} #TMP=${TMP-/tmp} 1.55 + TEMP=${TMP} 1.56 + TMPDIR=${TMP} 1.57 + 1.58 + CADIR=${HOSTDIR}/CA 1.59 + SERVERDIR=${HOSTDIR}/server 1.60 + CLIENTDIR=${HOSTDIR}/client 1.61 + ALICEDIR=${HOSTDIR}/alicedir 1.62 + BOBDIR=${HOSTDIR}/bobdir 1.63 + DAVEDIR=${HOSTDIR}/dave 1.64 + EVEDIR=${HOSTDIR}/eve 1.65 + FIPSDIR=${HOSTDIR}/fips 1.66 + DBPASSDIR=${HOSTDIR}/dbpass 1.67 + ECCURVES_DIR=${HOSTDIR}/eccurves 1.68 + DISTRUSTDIR=${HOSTDIR}/distrust 1.69 + 1.70 + SERVER_CADIR=${HOSTDIR}/serverCA 1.71 + CLIENT_CADIR=${HOSTDIR}/clientCA 1.72 + EXT_SERVERDIR=${HOSTDIR}/ext_server 1.73 + EXT_CLIENTDIR=${HOSTDIR}/ext_client 1.74 + 1.75 + IOPR_CADIR=${HOSTDIR}/CA_iopr 1.76 + IOPR_SSL_SERVERDIR=${HOSTDIR}/server_ssl_iopr 1.77 + IOPR_SSL_CLIENTDIR=${HOSTDIR}/client_ssl_iopr 1.78 + IOPR_OCSP_CLIENTDIR=${HOSTDIR}/client_ocsp_iopr 1.79 + 1.80 + CERT_EXTENSIONS_DIR=${HOSTDIR}/cert_extensions 1.81 + STAPLINGDIR=${HOSTDIR}/stapling 1.82 + 1.83 + PWFILE=${HOSTDIR}/tests.pw 1.84 + NOISE_FILE=${HOSTDIR}/tests_noise 1.85 + CORELIST_FILE=${HOSTDIR}/clist 1.86 + 1.87 + FIPSPWFILE=${HOSTDIR}/tests.fipspw 1.88 + FIPSBADPWFILE=${HOSTDIR}/tests.fipsbadpw 1.89 + FIPSP12PWFILE=${HOSTDIR}/tests.fipsp12pw 1.90 + 1.91 + echo "fIps140" > ${FIPSPWFILE} 1.92 + echo "fips104" > ${FIPSBADPWFILE} 1.93 + echo "pKcs12fips140" > ${FIPSP12PWFILE} 1.94 + 1.95 + noise 1.96 + 1.97 + P_SERVER_CADIR=${SERVER_CADIR} 1.98 + P_CLIENT_CADIR=${CLIENT_CADIR} 1.99 + 1.100 + if [ -n "${MULTIACCESS_DBM}" ]; then 1.101 + P_SERVER_CADIR="multiaccess:${D_SERVER_CA}" 1.102 + P_CLIENT_CADIR="multiaccess:${D_CLIENT_CA}" 1.103 + fi 1.104 + 1.105 + 1.106 + # a new log file, short - fast to search, mostly for tools to 1.107 + # see if their portion of the cert has succeeded, also for me - 1.108 + CERT_LOG_FILE=${HOSTDIR}/cert.log #the output.log is so crowded... 1.109 + 1.110 + TEMPFILES=foobar # keep "${PWFILE} ${NOISE_FILE}" around 1.111 + 1.112 + export HOSTDIR 1.113 + } 1.114 + 1.115 +# Generate noise file 1.116 + noise() 1.117 + { 1.118 + # NOTE: these keys are only suitable for testing, as this whole thing 1.119 + # bypasses the entropy gathering. Don't use this method to generate 1.120 + # keys and certs for product use or deployment. 1.121 + ps -efl > ${NOISE_FILE} 2>&1 1.122 + ps aux >> ${NOISE_FILE} 2>&1 1.123 + date >> ${NOISE_FILE} 2>&1 1.124 + } 1.125 + 1.126 +# Print selected environment variable (used for backup) 1.127 + env_backup() 1.128 + { 1.129 + echo "HOSTDIR=\"${HOSTDIR}\"" 1.130 + echo "TABLE_ARGS=" 1.131 + echo "NSS_TEST_DISABLE_CRL=${NSS_TEST_DISABLE_CRL}" 1.132 + echo "NSS_SSL_TESTS=\"${NSS_SSL_TESTS}\"" 1.133 + echo "NSS_SSL_RUN=\"${NSS_SSL_RUN}\"" 1.134 + echo "NSS_DEFAULT_DB_TYPE=${NSS_DEFAULT_DB_TYPE}" 1.135 + echo "export NSS_DEFAULT_DB_TYPE" 1.136 + echo "NSS_ENABLE_PKIX_VERIFY=${NSS_ENABLE_PKIX_VERIFY}" 1.137 + echo "export NSS_ENABLE_PKIX_VERIFY" 1.138 + echo "init_directories" 1.139 + } 1.140 + 1.141 +# Exit shellfunction to clean up at exit (error, regular or signal) 1.142 + Exit() 1.143 + { 1.144 + if [ -n "$1" ] ; then 1.145 + echo "$SCRIPTNAME: Exit: $* - FAILED" 1.146 + html_failed "$*" 1.147 + fi 1.148 + echo "</TABLE><BR>" >> ${RESULTS} 1.149 + if [ -n "${SERVERPID}" -a -f "${SERVERPID}" ]; then 1.150 + ${KILL} `cat ${SERVERPID}` 1.151 + fi 1.152 + cd ${QADIR} 1.153 + . common/cleanup.sh 1.154 + case $1 in 1.155 + [0-4][0-9]|[0-9]) 1.156 + exit $1; 1.157 + ;; 1.158 + *) 1.159 + exit 1 1.160 + ;; 1.161 + esac 1.162 + } 1.163 + 1.164 + detect_core() 1.165 + { 1.166 + [ ! -f $CORELIST_FILE ] && touch $CORELIST_FILE 1.167 + mv $CORELIST_FILE ${CORELIST_FILE}.old 1.168 + coreStr=`find $HOSTDIR -type f -name '*core*'` 1.169 + res=0 1.170 + if [ -n "$coreStr" ]; then 1.171 + sum $coreStr > $CORELIST_FILE 1.172 + res=`cat $CORELIST_FILE ${CORELIST_FILE}.old | sort | uniq -u | wc -l` 1.173 + fi 1.174 + return $res 1.175 + } 1.176 + 1.177 +#html functions to give the resultfiles a consistant look 1.178 + html() ######################### write the results.html file 1.179 + { # 3 functions so we can put targets in the output.log easier 1.180 + echo $* >>${RESULTS} 1.181 + } 1.182 + html_passed() 1.183 + { 1.184 + html_detect_core "$@" || return 1.185 + MSG_ID=`cat ${MSG_ID_FILE}` 1.186 + MSG_ID=`expr ${MSG_ID} + 1` 1.187 + echo ${MSG_ID} > ${MSG_ID_FILE} 1.188 + html "<TR><TD>#${MSG_ID}: $1 ${HTML_PASSED}" 1.189 + echo "${SCRIPTNAME}: #${MSG_ID}: $* - PASSED" 1.190 + } 1.191 + html_failed() 1.192 + { 1.193 + html_detect_core "$@" || return 1.194 + MSG_ID=`cat ${MSG_ID_FILE}` 1.195 + MSG_ID=`expr ${MSG_ID} + 1` 1.196 + echo ${MSG_ID} > ${MSG_ID_FILE} 1.197 + html "<TR><TD>#${MSG_ID}: $1 ${HTML_FAILED}" 1.198 + echo "${SCRIPTNAME}: #${MSG_ID}: $* - FAILED" 1.199 + } 1.200 + html_unknown() 1.201 + { 1.202 + html_detect_core "$@" || return 1.203 + MSG_ID=`cat ${MSG_ID_FILE}` 1.204 + MSG_ID=`expr ${MSG_ID} + 1` 1.205 + echo ${MSG_ID} > ${MSG_ID_FILE} 1.206 + html "<TR><TD>#${MSG_ID}: $1 ${HTML_UNKNOWN}" 1.207 + echo "${SCRIPTNAME}: #${MSG_ID}: $* - UNKNOWN" 1.208 + } 1.209 + html_detect_core() 1.210 + { 1.211 + detect_core 1.212 + if [ $? -ne 0 ]; then 1.213 + MSG_ID=`cat ${MSG_ID_FILE}` 1.214 + MSG_ID=`expr ${MSG_ID} + 1` 1.215 + echo ${MSG_ID} > ${MSG_ID_FILE} 1.216 + html "<TR><TD>#${MSG_ID}: $* ${HTML_FAILED_CORE}" 1.217 + echo "${SCRIPTNAME}: #${MSG_ID}: $* - Core file is detected - FAILED" 1.218 + return 1 1.219 + fi 1.220 + return 0 1.221 + } 1.222 + html_head() 1.223 + { 1.224 + 1.225 + html "<TABLE BORDER=1 ${TABLE_ARGS}><TR><TH COLSPAN=3>$*</TH></TR>" 1.226 + html "<TR><TH width=500>Test Case</TH><TH width=50>Result</TH></TR>" 1.227 + echo "$SCRIPTNAME: $* ===============================" 1.228 + } 1.229 + html_msg() 1.230 + { 1.231 + if [ "$1" -ne "$2" ] ; then 1.232 + html_failed "$3" "$4" 1.233 + else 1.234 + html_passed "$3" "$4" 1.235 + fi 1.236 + } 1.237 + HTML_FAILED='</TD><TD bgcolor=red>Failed</TD><TR>' 1.238 + HTML_FAILED_CORE='</TD><TD bgcolor=red>Failed Core</TD><TR>' 1.239 + HTML_PASSED='</TD><TD bgcolor=lightGreen>Passed</TD><TR>' 1.240 + HTML_UNKNOWN='</TD><TD>Unknown/TD><TR>' 1.241 + TABLE_ARGS= 1.242 + 1.243 + 1.244 +#directory name init 1.245 + SCRIPTNAME=init.sh 1.246 + 1.247 + mozilla_root=`(cd ../../..; pwd)` 1.248 + MOZILLA_ROOT=${MOZILLA_ROOT-$mozilla_root} 1.249 + 1.250 + qadir=`(cd ..; pwd)` 1.251 + QADIR=${QADIR-$qadir} 1.252 + 1.253 + common=${QADIR}/common 1.254 + COMMON=${TEST_COMMON-$common} 1.255 + export COMMON 1.256 + 1.257 + DIST=${DIST-${MOZILLA_ROOT}/dist} 1.258 + TESTDIR=${TESTDIR-${MOZILLA_ROOT}/tests_results/security} 1.259 + 1.260 + # Allow for override options from a config file 1.261 + if [ -n "${OBJDIR}" -a -f ${DIST}/${OBJDIR}/platform.cfg ]; then 1.262 + . ${DIST}/${OBJDIR}/platform.cfg 1.263 + fi 1.264 + 1.265 + # only need make if we don't already have certain variables set 1.266 + if [ -z "${OBJDIR}" -o -z "${OS_ARCH}" -o -z "${DLL_PREFIX}" -o -z "${DLL_SUFFIX}" ]; then 1.267 + MAKE=gmake 1.268 + $MAKE -v >/dev/null 2>&1 || MAKE=make 1.269 + $MAKE -v >/dev/null 2>&1 || { echo "You are missing make."; exit 5; } 1.270 + MAKE="$MAKE --no-print-directory" 1.271 + fi 1.272 + 1.273 + if [ "${OBJDIR}" = "" ]; then 1.274 + OBJDIR=`(cd $COMMON; $MAKE objdir_name)` 1.275 + fi 1.276 + if [ "${OS_ARCH}" = "" ]; then 1.277 + OS_ARCH=`(cd $COMMON; $MAKE os_arch)` 1.278 + fi 1.279 + if [ "${DLL_PREFIX}" = "" ]; then 1.280 + DLL_PREFIX=`(cd $COMMON; $MAKE dll_prefix)` 1.281 + fi 1.282 + if [ "${DLL_SUFFIX}" = "" ]; then 1.283 + DLL_SUFFIX=`(cd $COMMON; $MAKE dll_suffix)` 1.284 + fi 1.285 + OS_NAME=`uname -s | sed -e "s/-[0-9]*\.[0-9]*//" | sed -e "s/-WOW64//"` 1.286 + 1.287 + BINDIR="${DIST}/${OBJDIR}/bin" 1.288 + 1.289 + # Pathnames constructed from ${TESTDIR} are passed to NSS tools 1.290 + # such as certutil, which don't understand Cygwin pathnames. 1.291 + # So we need to convert ${TESTDIR} to a Windows pathname (with 1.292 + # regular slashes). 1.293 + if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then 1.294 + TESTDIR=`cygpath -m ${TESTDIR}` 1.295 + QADIR=`cygpath -m ${QADIR}` 1.296 + fi 1.297 + 1.298 + # Same problem with MSYS/Mingw, except we need to start over with pwd -W 1.299 + if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "MINGW32_NT" ]; then 1.300 + mingw_mozilla_root=`(cd ../../..; pwd -W)` 1.301 + MINGW_MOZILLA_ROOT=${MINGW_MOZILLA_ROOT-$mingw_mozilla_root} 1.302 + TESTDIR=${MINGW_TESTDIR-${MINGW_MOZILLA_ROOT}/tests_results/security} 1.303 + fi 1.304 + 1.305 + # Same problem with MSYS/Mingw, except we need to start over with pwd -W 1.306 + if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "MINGW32_NT" ]; then 1.307 + mingw_mozilla_root=`(cd ../../..; pwd -W)` 1.308 + MINGW_MOZILLA_ROOT=${MINGW_MOZILLA_ROOT-$mingw_mozilla_root} 1.309 + TESTDIR=${MINGW_TESTDIR-${MINGW_MOZILLA_ROOT}/tests_results/security} 1.310 + fi 1.311 + echo testdir is $TESTDIR 1.312 + 1.313 +#in case of backward comp. tests the calling scripts set the 1.314 +#PATH and LD_LIBRARY_PATH and do not want them to be changed 1.315 + if [ -z "${DON_T_SET_PATHS}" -o "${DON_T_SET_PATHS}" != "TRUE" ] ; then 1.316 + if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" != "CYGWIN_NT" -a "$OS_NAME" != "MINGW32_NT" ]; then 1.317 + PATH=.\;${DIST}/${OBJDIR}/bin\;${DIST}/${OBJDIR}/lib\;$PATH 1.318 + PATH=`perl ../path_uniq -d ';' "$PATH"` 1.319 + elif [ "${OS_ARCH}" = "Android" ]; then 1.320 + # android doesn't have perl, skip the uniq step 1.321 + PATH=.:${DIST}/${OBJDIR}/bin:${DIST}/${OBJDIR}/lib:$PATH 1.322 + else 1.323 + PATH=.:${DIST}/${OBJDIR}/bin:${DIST}/${OBJDIR}/lib:/bin:/usr/bin:$PATH 1.324 + # added /bin and /usr/bin in the beginning so a local perl will 1.325 + # be used 1.326 + PATH=`perl ../path_uniq -d ':' "$PATH"` 1.327 + fi 1.328 + 1.329 + LD_LIBRARY_PATH=${DIST}/${OBJDIR}/lib:$LD_LIBRARY_PATH 1.330 + SHLIB_PATH=${DIST}/${OBJDIR}/lib:$SHLIB_PATH 1.331 + LIBPATH=${DIST}/${OBJDIR}/lib:$LIBPATH 1.332 + DYLD_LIBRARY_PATH=${DIST}/${OBJDIR}/lib:$DYLD_LIBRARY_PATH 1.333 + fi 1.334 + 1.335 + if [ ! -d "${TESTDIR}" ]; then 1.336 + echo "$SCRIPTNAME init: Creating ${TESTDIR}" 1.337 + mkdir -p ${TESTDIR} 1.338 + fi 1.339 + 1.340 +#HOST and DOMSUF are needed for the server cert 1.341 + 1.342 + DOMAINNAME=`which domainname` 1.343 + if [ -z "${DOMSUF}" -a $? -eq 0 -a -n "${DOMAINNAME}" ]; then 1.344 + DOMSUF=`domainname` 1.345 + fi 1.346 + 1.347 + case $HOST in 1.348 + *\.*) 1.349 + if [ -z "${DOMSUF}" ]; then 1.350 + DOMSUF=`echo $HOST | sed -e "s/^[^.]*\.//"` 1.351 + fi 1.352 + HOST=`echo $HOST | sed -e "s/\..*//"` 1.353 + ;; 1.354 + ?*) 1.355 + ;; 1.356 + *) 1.357 + HOST=`uname -n` 1.358 + case $HOST in 1.359 + *\.*) 1.360 + if [ -z "${DOMSUF}" ]; then 1.361 + DOMSUF=`echo $HOST | sed -e "s/^[^.]*\.//"` 1.362 + fi 1.363 + HOST=`echo $HOST | sed -e "s/\..*//"` 1.364 + ;; 1.365 + ?*) 1.366 + ;; 1.367 + *) 1.368 + echo "$SCRIPTNAME: Fatal HOST environment variable is not defined." 1.369 + exit 1 #does not need to be Exit, very early in script 1.370 + ;; 1.371 + esac 1.372 + ;; 1.373 + esac 1.374 + 1.375 + if [ -z "${DOMSUF}" -a "${OS_ARCH}" != "Android" ]; then 1.376 + echo "$SCRIPTNAME: Fatal DOMSUF env. variable is not defined." 1.377 + exit 1 #does not need to be Exit, very early in script 1.378 + fi 1.379 + 1.380 +#HOSTADDR was a workaround for the dist. stress test, and is probably 1.381 +#not needed anymore (purpose: be able to use IP address for the server 1.382 +#cert instead of PC name which was not in the DNS because of dyn IP address 1.383 + if [ -z "$USE_IP" -o "$USE_IP" != "TRUE" ] ; then 1.384 + if [ -z "${DOMSUF}" ]; then 1.385 + HOSTADDR=${HOST} 1.386 + else 1.387 + HOSTADDR=${HOST}.${DOMSUF} 1.388 + fi 1.389 + else 1.390 + HOSTADDR=${IP_ADDRESS} 1.391 + fi 1.392 + 1.393 +#if running remote side of the distributed stress test we need to use 1.394 +#the files that the server side gives us... 1.395 + if [ -n "$DO_REM_ST" -a "$DO_REM_ST" = "TRUE" ] ; then 1.396 + for w in `ls -rtd ${TESTDIR}/${HOST}.[0-9]* 2>/dev/null | 1.397 + sed -e "s/.*${HOST}.//"` ; do 1.398 + version=$w 1.399 + done 1.400 + HOSTDIR=${TESTDIR}/${HOST}.$version 1.401 + echo "$SCRIPTNAME init: HOSTDIR $HOSTDIR" 1.402 + echo $HOSTDIR 1.403 + if [ ! -d $HOSTDIR ] ; then 1.404 + echo "$SCRIPTNAME: Fatal: Remote side of dist. stress test " 1.405 + echo " - server HOSTDIR $HOSTDIR does not exist" 1.406 + exit 1 #does not need to be Exit, very early in script 1.407 + fi 1.408 + fi 1.409 + 1.410 +#find the HOSTDIR, where the results are supposed to go 1.411 + if [ -n "${HOSTDIR}" ]; then 1.412 + version=`echo $HOSTDIR | sed -e "s/.*${HOST}.//"` 1.413 + else 1.414 + if [ -f "${TESTDIR}/${HOST}" ]; then 1.415 + version=`cat ${TESTDIR}/${HOST}` 1.416 + else 1.417 + version=1 1.418 + fi 1.419 +#file has a tendency to disappear, messing up the rest of QA - 1.420 +#workaround to find the next higher number if version file is not there 1.421 + if [ -z "${version}" ]; then # for some strange reason this file 1.422 + # gets truncated at times... Windos 1.423 + for w in `ls -d ${TESTDIR}/${HOST}.[0-9]* 2>/dev/null | 1.424 + sort -t '.' -n | sed -e "s/.*${HOST}.//"` ; do 1.425 + version=`expr $w + 1` 1.426 + done 1.427 + if [ -z "${version}" ]; then 1.428 + version=1 1.429 + fi 1.430 + fi 1.431 + expr $version + 1 > ${TESTDIR}/${HOST} 1.432 + 1.433 + HOSTDIR=${TESTDIR}/${HOST}'.'$version 1.434 + 1.435 + mkdir -p ${HOSTDIR} 1.436 + fi 1.437 + 1.438 +#result and log file and filename init, 1.439 + if [ -z "${LOGFILE}" ]; then 1.440 + LOGFILE=${HOSTDIR}/output.log 1.441 + fi 1.442 + if [ ! -f "${LOGFILE}" ]; then 1.443 + touch ${LOGFILE} 1.444 + fi 1.445 + if [ -z "${RESULTS}" ]; then 1.446 + RESULTS=${HOSTDIR}/results.html 1.447 + fi 1.448 + if [ ! -f "${RESULTS}" ]; then 1.449 + cp ${COMMON}/results_header.html ${RESULTS} 1.450 + html "<H4>Platform: ${OBJDIR}<BR>" 1.451 + html "Test Run: ${HOST}.$version</H4>" 1.452 + html "${BC_ACTION}" 1.453 + html "<HR><BR>" 1.454 + html "<HTML><BODY>" 1.455 + 1.456 + echo "********************************************" | tee -a ${LOGFILE} 1.457 + echo " Platform: ${OBJDIR}" | tee -a ${LOGFILE} 1.458 + echo " Results: ${HOST}.$version" | tee -a ${LOGFILE} 1.459 + echo "********************************************" | tee -a ${LOGFILE} 1.460 + echo "$BC_ACTION" | tee -a ${LOGFILE} 1.461 +#if running remote side of the distributed stress test 1.462 +# let the user know who it is... 1.463 + elif [ -n "$DO_REM_ST" -a "$DO_REM_ST" = "TRUE" ] ; then 1.464 + echo "********************************************" | tee -a ${LOGFILE} 1.465 + echo " Platform: ${OBJDIR}" | tee -a ${LOGFILE} 1.466 + echo " Results: ${HOST}.$version" | tee -a ${LOGFILE} 1.467 + echo " remote side of distributed stress test " | tee -a ${LOGFILE} 1.468 + echo " `uname -n -s`" | tee -a ${LOGFILE} 1.469 + echo "********************************************" | tee -a ${LOGFILE} 1.470 + fi 1.471 + 1.472 + echo "$SCRIPTNAME init: Testing PATH $PATH against LIB $LD_LIBRARY_PATH" |\ 1.473 + tee -a ${LOGFILE} 1.474 + 1.475 + KILL="kill" 1.476 + 1.477 + if [ `uname -s` = "SunOS" ]; then 1.478 + PS="/usr/5bin/ps" 1.479 + else 1.480 + PS="ps" 1.481 + fi 1.482 +#found 3 rsh's so far that do not work as expected - cygnus mks6 1.483 +#(restricted sh) and mks 7 - if it is not in c:/winnt/system32 it 1.484 +#needs to be set in the environ.ksh 1.485 + if [ -z "$RSH" ]; then 1.486 + if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then 1.487 + RSH=/cygdrive/c/winnt/system32/rsh 1.488 + elif [ "${OS_ARCH}" = "WINNT" ]; then 1.489 + RSH=c:/winnt/system32/rsh 1.490 + else 1.491 + RSH=rsh 1.492 + fi 1.493 + fi 1.494 + 1.495 + 1.496 +#more filename and directoryname init 1.497 + CURDIR=`pwd` 1.498 + 1.499 + CU_ACTION='Unknown certutil action' 1.500 + 1.501 + # would like to preserve some tmp files, also easier to see if there 1.502 + # are "leftovers" - another possibility ${HOSTDIR}/tmp 1.503 + 1.504 + init_directories 1.505 + 1.506 + FIPSCERTNICK="FIPS_PUB_140_Test_Certificate" 1.507 + 1.508 + # domains to handle ipc based access to databases 1.509 + D_CA="TestCA.$version" 1.510 + D_ALICE="Alice.$version" 1.511 + D_BOB="Bob.$version" 1.512 + D_DAVE="Dave.$version" 1.513 + D_EVE="Eve.$version" 1.514 + D_SERVER_CA="ServerCA.$version" 1.515 + D_CLIENT_CA="ClientCA.$version" 1.516 + D_SERVER="Server.$version" 1.517 + D_CLIENT="Client.$version" 1.518 + D_FIPS="FIPS.$version" 1.519 + D_DBPASS="DBPASS.$version" 1.520 + D_ECCURVES="ECCURVES.$version" 1.521 + D_EXT_SERVER="ExtendedServer.$version" 1.522 + D_EXT_CLIENT="ExtendedClient.$version" 1.523 + D_CERT_EXTENSTIONS="CertExtensions.$version" 1.524 + D_DISTRUST="Distrust.$version" 1.525 + 1.526 + # we need relative pathnames of these files abd directories, since our 1.527 + # tools can't handle the unix style absolut pathnames on cygnus 1.528 + 1.529 + R_CADIR=../CA 1.530 + R_SERVERDIR=../server 1.531 + R_CLIENTDIR=../client 1.532 + R_IOPR_CADIR=../CA_iopr 1.533 + R_IOPR_SSL_SERVERDIR=../server_ssl_iopr 1.534 + R_IOPR_SSL_CLIENTDIR=../client_ssl_iopr 1.535 + R_IOPR_OCSP_CLIENTDIR=../client_ocsp_iopr 1.536 + R_ALICEDIR=../alicedir 1.537 + R_BOBDIR=../bobdir 1.538 + R_DAVEDIR=../dave 1.539 + R_EVEDIR=../eve 1.540 + R_EXT_SERVERDIR=../ext_server 1.541 + R_EXT_CLIENTDIR=../ext_client 1.542 + R_CERT_EXT=../cert_extensions 1.543 + R_STAPLINGDIR=../stapling 1.544 + 1.545 + # 1.546 + # profiles are either paths or domains depending on the setting of 1.547 + # MULTIACCESS_DBM 1.548 + # 1.549 + P_R_CADIR=${R_CADIR} 1.550 + P_R_ALICEDIR=${R_ALICEDIR} 1.551 + P_R_BOBDIR=${R_BOBDIR} 1.552 + P_R_DAVEDIR=${R_DAVEDIR} 1.553 + P_R_EVEDIR=${R_EVEDIR} 1.554 + P_R_SERVERDIR=${R_SERVERDIR} 1.555 + P_R_CLIENTDIR=${R_CLIENTDIR} 1.556 + P_R_EXT_SERVERDIR=${R_EXT_SERVERDIR} 1.557 + P_R_EXT_CLIENTDIR=${R_EXT_CLIENTDIR} 1.558 + if [ -n "${MULTIACCESS_DBM}" ]; then 1.559 + P_R_CADIR="multiaccess:${D_CA}" 1.560 + P_R_ALICEDIR="multiaccess:${D_ALICE}" 1.561 + P_R_BOBDIR="multiaccess:${D_BOB}" 1.562 + P_R_DAVEDIR="multiaccess:${D_DAVE}" 1.563 + P_R_EVEDIR="multiaccess:${D_EVE}" 1.564 + P_R_SERVERDIR="multiaccess:${D_SERVER}" 1.565 + P_R_CLIENTDIR="multiaccess:${D_CLIENT}" 1.566 + P_R_EXT_SERVERDIR="multiaccess:${D_EXT_SERVER}" 1.567 + P_R_EXT_CLIENTDIR="multiaccess:${D_EXT_CLIENT}" 1.568 + fi 1.569 + 1.570 + R_PWFILE=../tests.pw 1.571 + R_NOISE_FILE=../tests_noise 1.572 + 1.573 + R_FIPSPWFILE=../tests.fipspw 1.574 + R_FIPSBADPWFILE=../tests.fipsbadpw 1.575 + R_FIPSP12PWFILE=../tests.fipsp12pw 1.576 + 1.577 + trap "Exit $0 Signal_caught" 2 3 1.578 + 1.579 + export PATH LD_LIBRARY_PATH SHLIB_PATH LIBPATH DYLD_LIBRARY_PATH 1.580 + export DOMSUF HOSTADDR 1.581 + export KILL PS 1.582 + export MOZILLA_ROOT DIST TESTDIR OBJDIR QADIR 1.583 + export LOGFILE SCRIPTNAME 1.584 + 1.585 +#used for the distributed stress test, the server generates certificates 1.586 +#from GLOB_MIN_CERT to GLOB_MAX_CERT 1.587 +# NOTE - this variable actually gets initialized by directly by the 1.588 +# ssl_dist_stress.shs sl_ds_init() before init is called - need to change 1.589 +# in both places. speaking of data encapsulatioN... 1.590 + 1.591 + if [ -z "$GLOB_MIN_CERT" ] ; then 1.592 + GLOB_MIN_CERT=0 1.593 + fi 1.594 + if [ -z "$GLOB_MAX_CERT" ] ; then 1.595 + GLOB_MAX_CERT=200 1.596 + fi 1.597 + if [ -z "$MIN_CERT" ] ; then 1.598 + MIN_CERT=$GLOB_MIN_CERT 1.599 + fi 1.600 + if [ -z "$MAX_CERT" ] ; then 1.601 + MAX_CERT=$GLOB_MAX_CERT 1.602 + fi 1.603 + 1.604 + ################################################# 1.605 + # CRL SSL testing constatnts 1.606 + # 1.607 + 1.608 + 1.609 + CRL_GRP_1_BEGIN=40 1.610 + CRL_GRP_1_RANGE=3 1.611 + UNREVOKED_CERT_GRP_1=41 1.612 + 1.613 + CRL_GRP_2_BEGIN=43 1.614 + CRL_GRP_2_RANGE=6 1.615 + UNREVOKED_CERT_GRP_2=46 1.616 + 1.617 + CRL_GRP_3_BEGIN=49 1.618 + CRL_GRP_3_RANGE=4 1.619 + UNREVOKED_CERT_GRP_3=51 1.620 + 1.621 + TOTAL_CRL_RANGE=`expr ${CRL_GRP_1_RANGE} + ${CRL_GRP_2_RANGE} + \ 1.622 + ${CRL_GRP_3_RANGE}` 1.623 + 1.624 + TOTAL_GRP_NUM=3 1.625 + 1.626 + RELOAD_CRL=1 1.627 + 1.628 + NSS_DEFAULT_DB_TYPE="dbm" 1.629 + export NSS_DEFAULT_DB_TYPE 1.630 + 1.631 + MSG_ID_FILE="${HOSTDIR}/id" 1.632 + MSG_ID=0 1.633 + echo ${MSG_ID} > ${MSG_ID_FILE} 1.634 + 1.635 + ################################################# 1.636 + # Interoperability testing constatnts 1.637 + # 1.638 + # if suite is setup for testing, IOPR_HOSTADDR_LIST should have 1.639 + # at least one host name(FQDN) 1.640 + # Example IOPR_HOSTADDR_LIST="goa1.SFBay.Sun.COM" 1.641 + 1.642 + if [ -z "`echo ${IOPR_HOSTADDR_LIST} | grep '[A-Za-z]'`" ]; then 1.643 + IOPR=0 1.644 + else 1.645 + IOPR=1 1.646 + fi 1.647 + ################################################# 1.648 + 1.649 + if [ "${OS_ARCH}" != "WINNT" -a "${OS_ARCH}" != "Android" ]; then 1.650 + ulimit -c unlimited 1.651 + fi 1.652 + 1.653 + SCRIPTNAME=$0 1.654 + INIT_SOURCED=TRUE #whatever one does - NEVER export this one please 1.655 +fi