|
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/cert/rcert.sh |
|
10 # |
|
11 # Certificate generating and handeling for NSS QA, can be included |
|
12 # multiple times from all.sh and the individual scripts |
|
13 # |
|
14 # needs to work on all Unix and Windows platforms |
|
15 # |
|
16 # included from (don't expect this to be up to date) |
|
17 # -------------------------------------------------- |
|
18 # all.sh |
|
19 # ssl.sh |
|
20 # smime.sh |
|
21 # tools.sh |
|
22 # |
|
23 # special strings |
|
24 # --------------- |
|
25 # FIXME ... known problems, search for this string |
|
26 # NOTE .... unexpected behavior |
|
27 # |
|
28 # FIXME - Netscape - NSS |
|
29 ######################################################################## |
|
30 |
|
31 ############################## cert_init ############################### |
|
32 # local shell function to initialize this script |
|
33 ######################################################################## |
|
34 cert_init() |
|
35 { |
|
36 SCRIPTNAME="cert.sh" |
|
37 if [ -z "${CLEANUP}" ] ; then # if nobody else is responsible for |
|
38 CLEANUP="${SCRIPTNAME}" # cleaning this script will do it |
|
39 fi |
|
40 if [ -z "${INIT_SOURCED}" ] ; then |
|
41 cd ../common |
|
42 . ./init.sh |
|
43 fi |
|
44 if [ -z "${IOPR_CERT_SOURCED}" ]; then |
|
45 . ../iopr/cert_iopr.sh |
|
46 fi |
|
47 SCRIPTNAME="cert.sh" |
|
48 CRL_GRP_DATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
49 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
50 html_head "Certutil and Crlutil Tests with ECC" |
|
51 else |
|
52 html_head "Certutil and Crlutil Tests" |
|
53 fi |
|
54 |
|
55 LIBDIR="${DIST}/${OBJDIR}/lib" |
|
56 |
|
57 ROOTCERTSFILE=`ls -1 ${LIBDIR}/*nssckbi* | head -1` |
|
58 if [ ! "${ROOTCERTSFILE}" ] ; then |
|
59 html_failed "Looking for root certs module." |
|
60 cert_log "ERROR: Root certs module not found." |
|
61 Exit 5 "Fatal - Root certs module not found." |
|
62 else |
|
63 html_passed "Looking for root certs module." |
|
64 fi |
|
65 |
|
66 if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then |
|
67 ROOTCERTSFILE=`cygpath -m ${ROOTCERTSFILE}` |
|
68 fi |
|
69 } |
|
70 |
|
71 cert_log() ###################### write the cert_status file |
|
72 { |
|
73 echo "$SCRIPTNAME $*" |
|
74 echo $* >>${CERT_LOG_FILE} |
|
75 } |
|
76 |
|
77 ######################################################################## |
|
78 # function wraps calls to pk12util, also: writes action and options |
|
79 # to stdout. |
|
80 # Params are the same as to pk12util. |
|
81 # Returns pk12util status |
|
82 # |
|
83 pk12u() |
|
84 { |
|
85 echo "${CU_ACTION} --------------------------" |
|
86 |
|
87 echo "pk12util $@" |
|
88 ${BINDIR}/pk12util $@ |
|
89 RET=$? |
|
90 |
|
91 return $RET |
|
92 } |
|
93 |
|
94 ################################ certu ################################# |
|
95 # local shell function to call certutil, also: writes action and options to |
|
96 # stdout, sets variable RET and writes results to the html file results |
|
97 ######################################################################## |
|
98 certu() |
|
99 { |
|
100 echo "$SCRIPTNAME: ${CU_ACTION} --------------------------" |
|
101 EXPECTED=${RETEXPECTED-0} |
|
102 |
|
103 if [ -n "${CU_SUBJECT}" ]; then |
|
104 #the subject of the cert contains blanks, and the shell |
|
105 #will strip the quotes off the string, if called otherwise... |
|
106 echo "certutil -s \"${CU_SUBJECT}\" $*" |
|
107 ${PROFTOOL} ${BINDIR}/certutil -s "${CU_SUBJECT}" $* |
|
108 RET=$? |
|
109 CU_SUBJECT="" |
|
110 else |
|
111 echo "certutil $*" |
|
112 ${PROFTOOL} ${BINDIR}/certutil $* |
|
113 RET=$? |
|
114 fi |
|
115 if [ "$RET" -ne "$EXPECTED" ]; then |
|
116 CERTFAILED=$RET |
|
117 html_failed "${CU_ACTION} ($RET=$EXPECTED) " |
|
118 cert_log "ERROR: ${CU_ACTION} failed $RET" |
|
119 else |
|
120 html_passed "${CU_ACTION}" |
|
121 fi |
|
122 |
|
123 return $RET |
|
124 } |
|
125 |
|
126 ################################ crlu ################################# |
|
127 # local shell function to call crlutil, also: writes action and options to |
|
128 # stdout, sets variable RET and writes results to the html file results |
|
129 ######################################################################## |
|
130 crlu() |
|
131 { |
|
132 echo "$SCRIPTNAME: ${CU_ACTION} --------------------------" |
|
133 |
|
134 CRLUTIL="crlutil -q" |
|
135 echo "$CRLUTIL $*" |
|
136 ${PROFTOOL} ${BINDIR}/$CRLUTIL $* |
|
137 RET=$? |
|
138 if [ "$RET" -ne 0 ]; then |
|
139 CRLFAILED=$RET |
|
140 html_failed "${CU_ACTION} ($RET) " |
|
141 cert_log "ERROR: ${CU_ACTION} failed $RET" |
|
142 else |
|
143 html_passed "${CU_ACTION}" |
|
144 fi |
|
145 |
|
146 return $RET |
|
147 } |
|
148 |
|
149 ################################ ocspr ################################## |
|
150 # local shell function to call ocsresp, also: writes action and options to |
|
151 # stdout, sets variable RET and writes results to the html file results |
|
152 ######################################################################### |
|
153 ocspr() |
|
154 { |
|
155 echo "$SCRIPTNAME: ${OR_ACTION} --------------------------" |
|
156 |
|
157 OCSPRESP="ocspresp" |
|
158 echo "$OCSPRESP $*" |
|
159 ${PROFTOOL} ${BINDIR}/$OCSPRESP $* |
|
160 RET=$? |
|
161 if [ "$RET" -ne 0 ]; then |
|
162 OCSPFAILED=$RET |
|
163 html_failed "${OR_ACTION} ($RET) " |
|
164 cert_log "ERROR: ${OR_ACTION} failed $RET" |
|
165 else |
|
166 html_passed "${OR_ACTION}" |
|
167 fi |
|
168 |
|
169 return $RET |
|
170 } |
|
171 |
|
172 modu() |
|
173 { |
|
174 echo "$SCRIPTNAME: ${CU_ACTION} --------------------------" |
|
175 |
|
176 MODUTIL="modutil" |
|
177 echo "$MODUTIL $*" |
|
178 # echo is used to press Enter expected by modutil |
|
179 echo | ${BINDIR}/$MODUTIL $* |
|
180 RET=$? |
|
181 if [ "$RET" -ne 0 ]; then |
|
182 MODFAILED=$RET |
|
183 html_failed "${CU_ACTION} ($RET) " |
|
184 cert_log "ERROR: ${CU_ACTION} failed $RET" |
|
185 else |
|
186 html_passed "${CU_ACTION}" |
|
187 fi |
|
188 |
|
189 return $RET |
|
190 } |
|
191 |
|
192 ############################# cert_init_cert ########################## |
|
193 # local shell function to initialize creation of client and server certs |
|
194 ######################################################################## |
|
195 cert_init_cert() |
|
196 { |
|
197 CERTDIR="$1" |
|
198 CERTNAME="$2" |
|
199 CERTSERIAL="$3" |
|
200 DOMAIN="$4" |
|
201 |
|
202 if [ ! -d "${CERTDIR}" ]; then |
|
203 mkdir -p "${CERTDIR}" |
|
204 else |
|
205 echo "$SCRIPTNAME: WARNING - ${CERTDIR} exists" |
|
206 fi |
|
207 cd "${CERTDIR}" |
|
208 CERTDIR="." |
|
209 |
|
210 PROFILEDIR=`cd ${CERTDIR}; pwd` |
|
211 if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then |
|
212 PROFILEDIR=`cygpath -m ${PROFILEDIR}` |
|
213 fi |
|
214 if [ -n "${MULTIACCESS_DBM}" ]; then |
|
215 PROFILEDIR="multiaccess:${DOMAIN}" |
|
216 fi |
|
217 |
|
218 noise |
|
219 } |
|
220 |
|
221 ############################# hw_acc ################################# |
|
222 # local shell function to add hw accelerator modules to the db |
|
223 ######################################################################## |
|
224 hw_acc() |
|
225 { |
|
226 HW_ACC_RET=0 |
|
227 HW_ACC_ERR="" |
|
228 if [ -n "$O_HWACC" -a "$O_HWACC" = ON -a -z "$USE_64" ] ; then |
|
229 echo "creating $CERTNAME s cert with hwaccelerator..." |
|
230 #case $ACCELERATOR in |
|
231 #rainbow) |
|
232 |
|
233 echo "modutil -add rainbow -libfile /usr/lib/libcryptoki22.so " |
|
234 echo " -dbdir ${PROFILEDIR} 2>&1 " |
|
235 echo | ${BINDIR}/modutil -add rainbow -libfile /usr/lib/libcryptoki22.so \ |
|
236 -dbdir ${PROFILEDIR} 2>&1 |
|
237 if [ "$?" -ne 0 ]; then |
|
238 echo "modutil -add rainbow failed in `pwd`" |
|
239 HW_ACC_RET=1 |
|
240 HW_ACC_ERR="modutil -add rainbow" |
|
241 fi |
|
242 |
|
243 echo "modutil -add ncipher " |
|
244 echo " -libfile /opt/nfast/toolkits/pkcs11/libcknfast.so " |
|
245 echo " -dbdir ${PROFILEDIR} 2>&1 " |
|
246 echo | ${BINDIR}/modutil -add ncipher \ |
|
247 -libfile /opt/nfast/toolkits/pkcs11/libcknfast.so \ |
|
248 -dbdir ${PROFILEDIR} 2>&1 |
|
249 if [ "$?" -ne 0 ]; then |
|
250 echo "modutil -add ncipher failed in `pwd`" |
|
251 HW_ACC_RET=`expr $HW_ACC_RET + 2` |
|
252 HW_ACC_ERR="$HW_ACC_ERR,modutil -add ncipher" |
|
253 fi |
|
254 if [ "$HW_ACC_RET" -ne 0 ]; then |
|
255 html_failed "Adding HW accelerators to certDB for ${CERTNAME} ($HW_ACC_RET) " |
|
256 else |
|
257 html_passed "Adding HW accelerators to certDB for ${CERTNAME}" |
|
258 fi |
|
259 |
|
260 fi |
|
261 return $HW_ACC_RET |
|
262 } |
|
263 |
|
264 ############################# cert_create_cert ######################### |
|
265 # local shell function to create client certs |
|
266 # initialize DB, import |
|
267 # root cert |
|
268 # add cert to DB |
|
269 ######################################################################## |
|
270 cert_create_cert() |
|
271 { |
|
272 cert_init_cert "$1" "$2" "$3" "$4" |
|
273 |
|
274 CU_ACTION="Initializing ${CERTNAME}'s Cert DB" |
|
275 certu -N -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
276 if [ "$RET" -ne 0 ]; then |
|
277 return $RET |
|
278 fi |
|
279 |
|
280 CU_ACTION="Loading root cert module to ${CERTNAME}'s Cert DB" |
|
281 modu -add "RootCerts" -libfile "${ROOTCERTSFILE}" -dbdir "${PROFILEDIR}" 2>&1 |
|
282 if [ "$RET" -ne 0 ]; then |
|
283 return $RET |
|
284 fi |
|
285 |
|
286 hw_acc |
|
287 |
|
288 CU_ACTION="Import Root CA for $CERTNAME" |
|
289 certu -A -n "TestCA" -t "TC,TC,TC" -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
290 -i "${R_CADIR}/TestCA.ca.cert" 2>&1 |
|
291 if [ "$RET" -ne 0 ]; then |
|
292 return $RET |
|
293 fi |
|
294 |
|
295 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
296 CU_ACTION="Import EC Root CA for $CERTNAME" |
|
297 certu -A -n "TestCA-ec" -t "TC,TC,TC" -f "${R_PWFILE}" \ |
|
298 -d "${PROFILEDIR}" -i "${R_CADIR}/TestCA-ec.ca.cert" 2>&1 |
|
299 if [ "$RET" -ne 0 ]; then |
|
300 return $RET |
|
301 fi |
|
302 fi |
|
303 |
|
304 cert_add_cert "$5" |
|
305 return $? |
|
306 } |
|
307 |
|
308 ############################# cert_add_cert ############################ |
|
309 # local shell function to add client certs to an existing CERT DB |
|
310 # generate request |
|
311 # sign request |
|
312 # import Cert |
|
313 # |
|
314 ######################################################################## |
|
315 cert_add_cert() |
|
316 { |
|
317 CU_ACTION="Generate Cert Request for $CERTNAME" |
|
318 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
319 certu -R -d "${PROFILEDIR}" -f "${R_PWFILE}" -z "${R_NOISE_FILE}" -o req 2>&1 |
|
320 if [ "$RET" -ne 0 ]; then |
|
321 return $RET |
|
322 fi |
|
323 |
|
324 CU_ACTION="Sign ${CERTNAME}'s Request" |
|
325 certu -C -c "TestCA" -m "$CERTSERIAL" -v 60 -d "${P_R_CADIR}" \ |
|
326 -i req -o "${CERTNAME}.cert" -f "${R_PWFILE}" "$1" 2>&1 |
|
327 if [ "$RET" -ne 0 ]; then |
|
328 return $RET |
|
329 fi |
|
330 |
|
331 CU_ACTION="Import $CERTNAME's Cert" |
|
332 certu -A -n "$CERTNAME" -t "u,u,u" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
333 -i "${CERTNAME}.cert" 2>&1 |
|
334 if [ "$RET" -ne 0 ]; then |
|
335 return $RET |
|
336 fi |
|
337 |
|
338 cert_log "SUCCESS: $CERTNAME's Cert Created" |
|
339 |
|
340 # |
|
341 # Generate and add EC cert |
|
342 # |
|
343 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
344 CURVE="secp384r1" |
|
345 CU_ACTION="Generate EC Cert Request for $CERTNAME" |
|
346 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ec@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
347 certu -R -k ec -q "${CURVE}" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
348 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
349 if [ "$RET" -ne 0 ]; then |
|
350 return $RET |
|
351 fi |
|
352 |
|
353 CU_ACTION="Sign ${CERTNAME}'s EC Request" |
|
354 certu -C -c "TestCA-ec" -m "$CERTSERIAL" -v 60 -d "${P_R_CADIR}" \ |
|
355 -i req -o "${CERTNAME}-ec.cert" -f "${R_PWFILE}" "$1" 2>&1 |
|
356 if [ "$RET" -ne 0 ]; then |
|
357 return $RET |
|
358 fi |
|
359 |
|
360 CU_ACTION="Import $CERTNAME's EC Cert" |
|
361 certu -A -n "${CERTNAME}-ec" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
362 -f "${R_PWFILE}" -i "${CERTNAME}-ec.cert" 2>&1 |
|
363 if [ "$RET" -ne 0 ]; then |
|
364 return $RET |
|
365 fi |
|
366 cert_log "SUCCESS: $CERTNAME's EC Cert Created" |
|
367 |
|
368 # Generate EC certificate signed with RSA |
|
369 CU_ACTION="Generate mixed EC Cert Request for $CERTNAME" |
|
370 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ecmixed@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
371 certu -R -k ec -q "${CURVE}" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
372 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
373 if [ "$RET" -ne 0 ]; then |
|
374 return $RET |
|
375 fi |
|
376 |
|
377 CU_ACTION="Sign ${CERTNAME}'s EC Request with RSA" |
|
378 # Avoid conflicting serial numbers with TestCA issuer by keeping |
|
379 # this set far away. A smaller number risks colliding with the |
|
380 # extended ssl user certificates. |
|
381 NEWSERIAL=`expr ${CERTSERIAL} + 10000` |
|
382 certu -C -c "TestCA" -m "$NEWSERIAL" -v 60 -d "${P_R_CADIR}" \ |
|
383 -i req -o "${CERTNAME}-ecmixed.cert" -f "${R_PWFILE}" "$1" 2>&1 |
|
384 if [ "$RET" -ne 0 ]; then |
|
385 return $RET |
|
386 fi |
|
387 |
|
388 CU_ACTION="Import $CERTNAME's mixed EC Cert" |
|
389 certu -A -n "${CERTNAME}-ecmixed" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
390 -f "${R_PWFILE}" -i "${CERTNAME}-ecmixed.cert" 2>&1 |
|
391 if [ "$RET" -ne 0 ]; then |
|
392 return $RET |
|
393 fi |
|
394 cert_log "SUCCESS: $CERTNAME's mixed EC Cert Created" |
|
395 fi |
|
396 |
|
397 return 0 |
|
398 } |
|
399 |
|
400 ################################# cert_all_CA ################################ |
|
401 # local shell function to build the additional Temp. Certificate Authority (CA) |
|
402 # used for the "real life" ssl test with 2 different CA's in the |
|
403 # client and in the server's dir |
|
404 ########################################################################## |
|
405 cert_all_CA() |
|
406 { |
|
407 echo nss > ${PWFILE} |
|
408 |
|
409 ALL_CU_SUBJECT="CN=NSS Test CA, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
410 cert_CA $CADIR TestCA -x "CTu,CTu,CTu" ${D_CA} "1" |
|
411 |
|
412 ALL_CU_SUBJECT="CN=NSS Server Test CA, O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
413 cert_CA $SERVER_CADIR serverCA -x "Cu,Cu,Cu" ${D_SERVER_CA} "2" |
|
414 ALL_CU_SUBJECT="CN=NSS Chain1 Server Test CA, O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
415 cert_CA $SERVER_CADIR chain-1-serverCA "-c serverCA" "u,u,u" ${D_SERVER_CA} "3" |
|
416 ALL_CU_SUBJECT="CN=NSS Chain2 Server Test CA, O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
417 cert_CA $SERVER_CADIR chain-2-serverCA "-c chain-1-serverCA" "u,u,u" ${D_SERVER_CA} "4" |
|
418 |
|
419 |
|
420 |
|
421 ALL_CU_SUBJECT="CN=NSS Client Test CA, O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
422 cert_CA $CLIENT_CADIR clientCA -x "Tu,Cu,Cu" ${D_CLIENT_CA} "5" |
|
423 ALL_CU_SUBJECT="CN=NSS Chain1 Client Test CA, O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
424 cert_CA $CLIENT_CADIR chain-1-clientCA "-c clientCA" "u,u,u" ${D_CLIENT_CA} "6" |
|
425 ALL_CU_SUBJECT="CN=NSS Chain2 Client Test CA, O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
426 cert_CA $CLIENT_CADIR chain-2-clientCA "-c chain-1-clientCA" "u,u,u" ${D_CLIENT_CA} "7" |
|
427 |
|
428 rm $CLIENT_CADIR/root.cert $SERVER_CADIR/root.cert |
|
429 |
|
430 # root.cert in $CLIENT_CADIR and in $SERVER_CADIR is one of the last |
|
431 # in the chain |
|
432 |
|
433 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
434 # |
|
435 # Create EC version of TestCA |
|
436 CA_CURVE="secp521r1" |
|
437 ALL_CU_SUBJECT="CN=NSS Test CA (ECC), O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
438 cert_ec_CA $CADIR TestCA-ec -x "CTu,CTu,CTu" ${D_CA} "1" ${CA_CURVE} |
|
439 # |
|
440 # Create EC versions of the intermediate CA certs |
|
441 ALL_CU_SUBJECT="CN=NSS Server Test CA (ECC), O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
442 cert_ec_CA $SERVER_CADIR serverCA-ec -x "Cu,Cu,Cu" ${D_SERVER_CA} "2" ${CA_CURVE} |
|
443 ALL_CU_SUBJECT="CN=NSS Chain1 Server Test CA (ECC), O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
444 cert_ec_CA $SERVER_CADIR chain-1-serverCA-ec "-c serverCA-ec" "u,u,u" ${D_SERVER_CA} "3" ${CA_CURVE} |
|
445 ALL_CU_SUBJECT="CN=NSS Chain2 Server Test CA (ECC), O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
446 cert_ec_CA $SERVER_CADIR chain-2-serverCA-ec "-c chain-1-serverCA-ec" "u,u,u" ${D_SERVER_CA} "4" ${CA_CURVE} |
|
447 |
|
448 ALL_CU_SUBJECT="CN=NSS Client Test CA (ECC), O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
449 cert_ec_CA $CLIENT_CADIR clientCA-ec -x "Tu,Cu,Cu" ${D_CLIENT_CA} "5" ${CA_CURVE} |
|
450 ALL_CU_SUBJECT="CN=NSS Chain1 Client Test CA (ECC), O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
451 cert_ec_CA $CLIENT_CADIR chain-1-clientCA-ec "-c clientCA-ec" "u,u,u" ${D_CLIENT_CA} "6" ${CA_CURVE} |
|
452 ALL_CU_SUBJECT="CN=NSS Chain2 Client Test CA (ECC), O=BOGUS NSS, L=Santa Clara, ST=California, C=US" |
|
453 cert_ec_CA $CLIENT_CADIR chain-2-clientCA-ec "-c chain-1-clientCA-ec" "u,u,u" ${D_CLIENT_CA} "7" ${CA_CURVE} |
|
454 |
|
455 rm $CLIENT_CADIR/ecroot.cert $SERVER_CADIR/ecroot.cert |
|
456 # ecroot.cert in $CLIENT_CADIR and in $SERVER_CADIR is one of the last |
|
457 # in the chain |
|
458 |
|
459 fi |
|
460 } |
|
461 |
|
462 ################################# cert_CA ################################ |
|
463 # local shell function to build the Temp. Certificate Authority (CA) |
|
464 # used for testing purposes, creating a CA Certificate and a root cert |
|
465 ########################################################################## |
|
466 cert_CA() |
|
467 { |
|
468 CUR_CADIR=$1 |
|
469 NICKNAME=$2 |
|
470 SIGNER=$3 |
|
471 TRUSTARG=$4 |
|
472 DOMAIN=$5 |
|
473 CERTSERIAL=$6 |
|
474 |
|
475 echo "$SCRIPTNAME: Creating a CA Certificate $NICKNAME ==========================" |
|
476 |
|
477 if [ ! -d "${CUR_CADIR}" ]; then |
|
478 mkdir -p "${CUR_CADIR}" |
|
479 fi |
|
480 cd ${CUR_CADIR} |
|
481 pwd |
|
482 |
|
483 LPROFILE=`pwd` |
|
484 if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then |
|
485 LPROFILE=`cygpath -m ${LPROFILE}` |
|
486 fi |
|
487 if [ -n "${MULTIACCESS_DBM}" ]; then |
|
488 LPROFILE="multiaccess:${DOMAIN}" |
|
489 fi |
|
490 |
|
491 if [ "$SIGNER" = "-x" ] ; then # self signed -> create DB |
|
492 CU_ACTION="Creating CA Cert DB" |
|
493 certu -N -d "${LPROFILE}" -f ${R_PWFILE} 2>&1 |
|
494 if [ "$RET" -ne 0 ]; then |
|
495 Exit 5 "Fatal - failed to create CA $NICKNAME " |
|
496 fi |
|
497 |
|
498 CU_ACTION="Loading root cert module to CA Cert DB" |
|
499 modu -add "RootCerts" -libfile "${ROOTCERTSFILE}" -dbdir "${LPROFILE}" 2>&1 |
|
500 if [ "$RET" -ne 0 ]; then |
|
501 return $RET |
|
502 fi |
|
503 |
|
504 echo "$SCRIPTNAME: Certificate initialized ----------" |
|
505 fi |
|
506 |
|
507 |
|
508 ################# Creating CA Cert ###################################### |
|
509 # |
|
510 CU_ACTION="Creating CA Cert $NICKNAME " |
|
511 CU_SUBJECT=$ALL_CU_SUBJECT |
|
512 certu -S -n $NICKNAME -t $TRUSTARG -v 600 $SIGNER -d ${LPROFILE} -1 -2 -5 \ |
|
513 -f ${R_PWFILE} -z ${R_NOISE_FILE} -m $CERTSERIAL 2>&1 <<CERTSCRIPT |
|
514 5 |
|
515 6 |
|
516 9 |
|
517 n |
|
518 y |
|
519 -1 |
|
520 n |
|
521 5 |
|
522 6 |
|
523 7 |
|
524 9 |
|
525 n |
|
526 CERTSCRIPT |
|
527 |
|
528 if [ "$RET" -ne 0 ]; then |
|
529 echo "return value is $RET" |
|
530 Exit 6 "Fatal - failed to create CA cert" |
|
531 fi |
|
532 |
|
533 ################# Exporting Root Cert ################################### |
|
534 # |
|
535 CU_ACTION="Exporting Root Cert" |
|
536 certu -L -n $NICKNAME -r -d ${LPROFILE} -o root.cert |
|
537 if [ "$RET" -ne 0 ]; then |
|
538 Exit 7 "Fatal - failed to export root cert" |
|
539 fi |
|
540 cp root.cert ${NICKNAME}.ca.cert |
|
541 } |
|
542 |
|
543 ################################ cert_ec_CA ############################## |
|
544 # local shell function to build the Temp. Certificate Authority (CA) |
|
545 # used for testing purposes, creating a CA Certificate and a root cert |
|
546 # This is the ECC version of cert_CA. |
|
547 ########################################################################## |
|
548 cert_ec_CA() |
|
549 { |
|
550 CUR_CADIR=$1 |
|
551 NICKNAME=$2 |
|
552 SIGNER=$3 |
|
553 TRUSTARG=$4 |
|
554 DOMAIN=$5 |
|
555 CERTSERIAL=$6 |
|
556 CURVE=$7 |
|
557 |
|
558 echo "$SCRIPTNAME: Creating an EC CA Certificate $NICKNAME ==========================" |
|
559 |
|
560 if [ ! -d "${CUR_CADIR}" ]; then |
|
561 mkdir -p "${CUR_CADIR}" |
|
562 fi |
|
563 cd ${CUR_CADIR} |
|
564 pwd |
|
565 |
|
566 LPROFILE=. |
|
567 if [ -n "${MULTIACCESS_DBM}" ]; then |
|
568 LPROFILE="multiaccess:${DOMAIN}" |
|
569 fi |
|
570 |
|
571 ################# Creating an EC CA Cert ################################ |
|
572 # |
|
573 CU_ACTION="Creating EC CA Cert $NICKNAME " |
|
574 CU_SUBJECT=$ALL_CU_SUBJECT |
|
575 certu -S -n $NICKNAME -k ec -q $CURVE -t $TRUSTARG -v 600 $SIGNER \ |
|
576 -d ${LPROFILE} -1 -2 -5 -f ${R_PWFILE} -z ${R_NOISE_FILE} \ |
|
577 -m $CERTSERIAL 2>&1 <<CERTSCRIPT |
|
578 5 |
|
579 6 |
|
580 9 |
|
581 n |
|
582 y |
|
583 -1 |
|
584 n |
|
585 5 |
|
586 6 |
|
587 7 |
|
588 9 |
|
589 n |
|
590 CERTSCRIPT |
|
591 |
|
592 if [ "$RET" -ne 0 ]; then |
|
593 echo "return value is $RET" |
|
594 Exit 6 "Fatal - failed to create EC CA cert" |
|
595 fi |
|
596 |
|
597 ################# Exporting EC Root Cert ################################ |
|
598 # |
|
599 CU_ACTION="Exporting EC Root Cert" |
|
600 certu -L -n $NICKNAME -r -d ${LPROFILE} -o ecroot.cert |
|
601 if [ "$RET" -ne 0 ]; then |
|
602 Exit 7 "Fatal - failed to export ec root cert" |
|
603 fi |
|
604 cp ecroot.cert ${NICKNAME}.ca.cert |
|
605 } |
|
606 |
|
607 ############################## cert_smime_client ############################# |
|
608 # local shell function to create client Certificates for S/MIME tests |
|
609 ############################################################################## |
|
610 cert_smime_client() |
|
611 { |
|
612 CERTFAILED=0 |
|
613 echo "$SCRIPTNAME: Creating Client CA Issued Certificates ==============" |
|
614 |
|
615 cert_create_cert ${ALICEDIR} "Alice" 30 ${D_ALICE} |
|
616 cert_create_cert ${BOBDIR} "Bob" 40 ${D_BOB} |
|
617 |
|
618 echo "$SCRIPTNAME: Creating Dave's Certificate -------------------------" |
|
619 cert_create_cert "${DAVEDIR}" Dave 50 ${D_DAVE} |
|
620 |
|
621 ## XXX With this new script merging ECC and non-ECC tests, the |
|
622 ## call to cert_create_cert ends up creating two separate certs |
|
623 ## one for Eve and another for Eve-ec but they both end up with |
|
624 ## the same Subject Alt Name Extension, i.e., both the cert for |
|
625 ## Eve@bogus.com and the cert for Eve-ec@bogus.com end up |
|
626 ## listing eve@bogus.net in the Certificate Subject Alt Name extension. |
|
627 ## This can cause a problem later when cmsutil attempts to create |
|
628 ## enveloped data and accidently picks up the ECC cert (NSS currently |
|
629 ## does not support ECC for enveloped data creation). This script |
|
630 ## avoids the problem by ensuring that these conflicting certs are |
|
631 ## never added to the same cert database (see comment marked XXXX). |
|
632 echo "$SCRIPTNAME: Creating multiEmail's Certificate --------------------" |
|
633 cert_create_cert "${EVEDIR}" "Eve" 60 ${D_EVE} "-7 eve@bogus.net,eve@bogus.cc,beve@bogus.com" |
|
634 |
|
635 #echo "************* Copying CA files to ${SERVERDIR}" |
|
636 #cp ${CADIR}/*.db . |
|
637 #hw_acc |
|
638 |
|
639 ######################################################################### |
|
640 # |
|
641 #cd ${CERTDIR} |
|
642 #CU_ACTION="Creating ${CERTNAME}'s Server Cert" |
|
643 #CU_SUBJECT="CN=${CERTNAME}, E=${CERTNAME}@bogus.com, O=BOGUS Netscape, L=Mountain View, ST=California, C=US" |
|
644 #certu -S -n "${CERTNAME}" -c "TestCA" -t "u,u,u" -m "$CERTSERIAL" \ |
|
645 # -d ${PROFILEDIR} -f "${R_PWFILE}" -z "${R_NOISE_FILE}" -v 60 2>&1 |
|
646 |
|
647 #CU_ACTION="Export Dave's Cert" |
|
648 #cd ${DAVEDIR} |
|
649 #certu -L -n "Dave" -r -d ${P_R_DAVE} -o Dave.cert |
|
650 |
|
651 ################# Importing Certificates for S/MIME tests ############### |
|
652 # |
|
653 echo "$SCRIPTNAME: Importing Certificates ==============================" |
|
654 CU_ACTION="Import Bob's cert into Alice's db" |
|
655 certu -E -t ",," -d ${P_R_ALICEDIR} -f ${R_PWFILE} \ |
|
656 -i ${R_BOBDIR}/Bob.cert 2>&1 |
|
657 |
|
658 CU_ACTION="Import Dave's cert into Alice's DB" |
|
659 certu -E -t ",," -d ${P_R_ALICEDIR} -f ${R_PWFILE} \ |
|
660 -i ${R_DAVEDIR}/Dave.cert 2>&1 |
|
661 |
|
662 CU_ACTION="Import Dave's cert into Bob's DB" |
|
663 certu -E -t ",," -d ${P_R_BOBDIR} -f ${R_PWFILE} \ |
|
664 -i ${R_DAVEDIR}/Dave.cert 2>&1 |
|
665 |
|
666 CU_ACTION="Import Eve's cert into Alice's DB" |
|
667 certu -E -t ",," -d ${P_R_ALICEDIR} -f ${R_PWFILE} \ |
|
668 -i ${R_EVEDIR}/Eve.cert 2>&1 |
|
669 |
|
670 CU_ACTION="Import Eve's cert into Bob's DB" |
|
671 certu -E -t ",," -d ${P_R_BOBDIR} -f ${R_PWFILE} \ |
|
672 -i ${R_EVEDIR}/Eve.cert 2>&1 |
|
673 |
|
674 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
675 echo "$SCRIPTNAME: Importing EC Certificates ==============================" |
|
676 CU_ACTION="Import Bob's EC cert into Alice's db" |
|
677 certu -E -t ",," -d ${P_R_ALICEDIR} -f ${R_PWFILE} \ |
|
678 -i ${R_BOBDIR}/Bob-ec.cert 2>&1 |
|
679 |
|
680 CU_ACTION="Import Dave's EC cert into Alice's DB" |
|
681 certu -E -t ",," -d ${P_R_ALICEDIR} -f ${R_PWFILE} \ |
|
682 -i ${R_DAVEDIR}/Dave-ec.cert 2>&1 |
|
683 |
|
684 CU_ACTION="Import Dave's EC cert into Bob's DB" |
|
685 certu -E -t ",," -d ${P_R_BOBDIR} -f ${R_PWFILE} \ |
|
686 -i ${R_DAVEDIR}/Dave-ec.cert 2>&1 |
|
687 |
|
688 ## XXXX Do not import Eve's EC cert until we can make sure that |
|
689 ## the email addresses listed in the Subject Alt Name Extension |
|
690 ## inside Eve's ECC and non-ECC certs are different. |
|
691 # CU_ACTION="Import Eve's EC cert into Alice's DB" |
|
692 # certu -E -t ",," -d ${P_R_ALICEDIR} -f ${R_PWFILE} \ |
|
693 # -i ${R_EVEDIR}/Eve-ec.cert 2>&1 |
|
694 |
|
695 # CU_ACTION="Import Eve's EC cert into Bob's DB" |
|
696 # certu -E -t ",," -d ${P_R_BOBDIR} -f ${R_PWFILE} \ |
|
697 # -i ${R_EVEDIR}/Eve-ec.cert 2>&1 |
|
698 fi |
|
699 |
|
700 if [ "$CERTFAILED" != 0 ] ; then |
|
701 cert_log "ERROR: SMIME failed $RET" |
|
702 else |
|
703 cert_log "SUCCESS: SMIME passed" |
|
704 fi |
|
705 } |
|
706 |
|
707 ############################## cert_extended_ssl ####################### |
|
708 # local shell function to create client + server certs for extended SSL test |
|
709 ######################################################################## |
|
710 cert_extended_ssl() |
|
711 { |
|
712 |
|
713 ################# Creating Certs for extended SSL test #################### |
|
714 # |
|
715 CERTFAILED=0 |
|
716 echo "$SCRIPTNAME: Creating Certificates, issued by the last ===============" |
|
717 echo " of a chain of CA's which are not in the same database============" |
|
718 |
|
719 echo "Server Cert" |
|
720 cert_init_cert ${EXT_SERVERDIR} "${HOSTADDR}" 1 ${D_EXT_SERVER} |
|
721 |
|
722 CU_ACTION="Initializing ${CERTNAME}'s Cert DB (ext.)" |
|
723 certu -N -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
724 |
|
725 CU_ACTION="Loading root cert module to ${CERTNAME}'s Cert DB (ext.)" |
|
726 modu -add "RootCerts" -libfile "${ROOTCERTSFILE}" -dbdir "${PROFILEDIR}" 2>&1 |
|
727 |
|
728 CU_ACTION="Generate Cert Request for $CERTNAME (ext)" |
|
729 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
730 certu -R -d "${PROFILEDIR}" -f "${R_PWFILE}" -z "${R_NOISE_FILE}" -o req 2>&1 |
|
731 |
|
732 CU_ACTION="Sign ${CERTNAME}'s Request (ext)" |
|
733 cp ${CERTDIR}/req ${SERVER_CADIR} |
|
734 certu -C -c "chain-2-serverCA" -m 200 -v 60 -d "${P_SERVER_CADIR}" \ |
|
735 -i req -o "${CERTNAME}.cert" -f "${R_PWFILE}" 2>&1 |
|
736 |
|
737 CU_ACTION="Import $CERTNAME's Cert -t u,u,u (ext)" |
|
738 certu -A -n "$CERTNAME" -t "u,u,u" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
739 -i "${CERTNAME}.cert" 2>&1 |
|
740 |
|
741 CU_ACTION="Import Client Root CA -t T,, for $CERTNAME (ext.)" |
|
742 certu -A -n "clientCA" -t "T,," -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
743 -i "${CLIENT_CADIR}/clientCA.ca.cert" 2>&1 |
|
744 |
|
745 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
746 # |
|
747 # Repeat the above for EC certs |
|
748 # |
|
749 EC_CURVE="secp256r1" |
|
750 CU_ACTION="Generate EC Cert Request for $CERTNAME (ext)" |
|
751 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ec@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
752 certu -R -d "${PROFILEDIR}" -k ec -q "${EC_CURVE}" -f "${R_PWFILE}" \ |
|
753 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
754 |
|
755 CU_ACTION="Sign ${CERTNAME}'s EC Request (ext)" |
|
756 cp ${CERTDIR}/req ${SERVER_CADIR} |
|
757 certu -C -c "chain-2-serverCA-ec" -m 200 -v 60 -d "${P_SERVER_CADIR}" \ |
|
758 -i req -o "${CERTNAME}-ec.cert" -f "${R_PWFILE}" 2>&1 |
|
759 |
|
760 CU_ACTION="Import $CERTNAME's EC Cert -t u,u,u (ext)" |
|
761 certu -A -n "${CERTNAME}-ec" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
762 -f "${R_PWFILE}" -i "${CERTNAME}-ec.cert" 2>&1 |
|
763 |
|
764 CU_ACTION="Import Client EC Root CA -t T,, for $CERTNAME (ext.)" |
|
765 certu -A -n "clientCA-ec" -t "T,," -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
766 -i "${CLIENT_CADIR}/clientCA-ec.ca.cert" 2>&1 |
|
767 # |
|
768 # done with EC certs |
|
769 # |
|
770 # Repeat again for mixed EC certs |
|
771 # |
|
772 EC_CURVE="secp256r1" |
|
773 CU_ACTION="Generate mixed EC Cert Request for $CERTNAME (ext)" |
|
774 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ecmixed@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
775 certu -R -d "${PROFILEDIR}" -k ec -q "${EC_CURVE}" -f "${R_PWFILE}" \ |
|
776 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
777 |
|
778 CU_ACTION="Sign ${CERTNAME}'s mixed EC Request (ext)" |
|
779 cp ${CERTDIR}/req ${SERVER_CADIR} |
|
780 certu -C -c "chain-2-serverCA" -m 201 -v 60 -d "${P_SERVER_CADIR}" \ |
|
781 -i req -o "${CERTNAME}-ecmixed.cert" -f "${R_PWFILE}" 2>&1 |
|
782 |
|
783 CU_ACTION="Import $CERTNAME's mixed EC Cert -t u,u,u (ext)" |
|
784 certu -A -n "${CERTNAME}-ecmixed" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
785 -f "${R_PWFILE}" -i "${CERTNAME}-ecmixed.cert" 2>&1 |
|
786 |
|
787 # CU_ACTION="Import Client mixed EC Root CA -t T,, for $CERTNAME (ext.)" |
|
788 # certu -A -n "clientCA-ecmixed" -t "T,," -f "${R_PWFILE}" \ |
|
789 # -d "${PROFILEDIR}" -i "${CLIENT_CADIR}/clientCA-ecmixed.ca.cert" \ |
|
790 # 2>&1 |
|
791 fi |
|
792 |
|
793 echo "Importing all the server's own CA chain into the servers DB" |
|
794 for CA in `find ${SERVER_CADIR} -name "?*.ca.cert"` ; |
|
795 do |
|
796 N=`basename $CA | sed -e "s/.ca.cert//"` |
|
797 if [ $N = "serverCA" -o $N = "serverCA-ec" ] ; then |
|
798 T="-t C,C,C" |
|
799 else |
|
800 T="-t u,u,u" |
|
801 fi |
|
802 CU_ACTION="Import $N CA $T for $CERTNAME (ext.) " |
|
803 certu -A -n $N $T -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
804 -i "${CA}" 2>&1 |
|
805 done |
|
806 #============ |
|
807 echo "Client Cert" |
|
808 cert_init_cert ${EXT_CLIENTDIR} ExtendedSSLUser 1 ${D_EXT_CLIENT} |
|
809 |
|
810 CU_ACTION="Initializing ${CERTNAME}'s Cert DB (ext.)" |
|
811 certu -N -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
812 |
|
813 CU_ACTION="Loading root cert module to ${CERTNAME}'s Cert DB (ext.)" |
|
814 modu -add "RootCerts" -libfile "${ROOTCERTSFILE}" -dbdir "${PROFILEDIR}" 2>&1 |
|
815 |
|
816 CU_ACTION="Generate Cert Request for $CERTNAME (ext)" |
|
817 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
818 certu -R -d "${PROFILEDIR}" -f "${R_PWFILE}" -z "${R_NOISE_FILE}" \ |
|
819 -o req 2>&1 |
|
820 |
|
821 CU_ACTION="Sign ${CERTNAME}'s Request (ext)" |
|
822 cp ${CERTDIR}/req ${CLIENT_CADIR} |
|
823 certu -C -c "chain-2-clientCA" -m 300 -v 60 -d "${P_CLIENT_CADIR}" \ |
|
824 -i req -o "${CERTNAME}.cert" -f "${R_PWFILE}" 2>&1 |
|
825 |
|
826 CU_ACTION="Import $CERTNAME's Cert -t u,u,u (ext)" |
|
827 certu -A -n "$CERTNAME" -t "u,u,u" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
828 -i "${CERTNAME}.cert" 2>&1 |
|
829 CU_ACTION="Import Server Root CA -t C,C,C for $CERTNAME (ext.)" |
|
830 certu -A -n "serverCA" -t "C,C,C" -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
831 -i "${SERVER_CADIR}/serverCA.ca.cert" 2>&1 |
|
832 |
|
833 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
834 # |
|
835 # Repeat the above for EC certs |
|
836 # |
|
837 CU_ACTION="Generate EC Cert Request for $CERTNAME (ext)" |
|
838 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ec@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
839 certu -R -d "${PROFILEDIR}" -k ec -q "${EC_CURVE}" -f "${R_PWFILE}" \ |
|
840 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
841 |
|
842 CU_ACTION="Sign ${CERTNAME}'s EC Request (ext)" |
|
843 cp ${CERTDIR}/req ${CLIENT_CADIR} |
|
844 certu -C -c "chain-2-clientCA-ec" -m 300 -v 60 -d "${P_CLIENT_CADIR}" \ |
|
845 -i req -o "${CERTNAME}-ec.cert" -f "${R_PWFILE}" 2>&1 |
|
846 |
|
847 CU_ACTION="Import $CERTNAME's EC Cert -t u,u,u (ext)" |
|
848 certu -A -n "${CERTNAME}-ec" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
849 -f "${R_PWFILE}" -i "${CERTNAME}-ec.cert" 2>&1 |
|
850 |
|
851 CU_ACTION="Import Server EC Root CA -t C,C,C for $CERTNAME (ext.)" |
|
852 certu -A -n "serverCA-ec" -t "C,C,C" -f "${R_PWFILE}" \ |
|
853 -d "${PROFILEDIR}" -i "${SERVER_CADIR}/serverCA-ec.ca.cert" 2>&1 |
|
854 # |
|
855 # done with EC certs |
|
856 # |
|
857 # |
|
858 # Repeat the above for mixed EC certs |
|
859 # |
|
860 CU_ACTION="Generate mixed EC Cert Request for $CERTNAME (ext)" |
|
861 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ecmixed@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
862 certu -R -d "${PROFILEDIR}" -k ec -q "${EC_CURVE}" -f "${R_PWFILE}" \ |
|
863 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
864 |
|
865 CU_ACTION="Sign ${CERTNAME}'s mixed EC Request (ext)" |
|
866 cp ${CERTDIR}/req ${CLIENT_CADIR} |
|
867 certu -C -c "chain-2-clientCA" -m 301 -v 60 -d "${P_CLIENT_CADIR}" \ |
|
868 -i req -o "${CERTNAME}-ecmixed.cert" -f "${R_PWFILE}" 2>&1 |
|
869 |
|
870 CU_ACTION="Import $CERTNAME's mixed EC Cert -t u,u,u (ext)" |
|
871 certu -A -n "${CERTNAME}-ecmixed" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
872 -f "${R_PWFILE}" -i "${CERTNAME}-ecmixed.cert" 2>&1 |
|
873 |
|
874 # CU_ACTION="Import Server EC Root CA -t C,C,C for $CERTNAME (ext.)" |
|
875 # certu -A -n "serverCA-ec" -t "C,C,C" -f "${R_PWFILE}" \ |
|
876 # -d "${PROFILEDIR}" -i "${SERVER_CADIR}/serverCA-ec.ca.cert" 2>&1 |
|
877 # |
|
878 # done with mixed EC certs |
|
879 # |
|
880 fi |
|
881 |
|
882 echo "Importing all the client's own CA chain into the servers DB" |
|
883 for CA in `find ${CLIENT_CADIR} -name "?*.ca.cert"` ; |
|
884 do |
|
885 N=`basename $CA | sed -e "s/.ca.cert//"` |
|
886 if [ $N = "clientCA" -o $N = "clientCA-ec" ] ; then |
|
887 T="-t T,C,C" |
|
888 else |
|
889 T="-t u,u,u" |
|
890 fi |
|
891 CU_ACTION="Import $N CA $T for $CERTNAME (ext.)" |
|
892 certu -A -n $N $T -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
893 -i "${CA}" 2>&1 |
|
894 done |
|
895 if [ "$CERTFAILED" != 0 ] ; then |
|
896 cert_log "ERROR: EXT failed $RET" |
|
897 else |
|
898 cert_log "SUCCESS: EXT passed" |
|
899 fi |
|
900 } |
|
901 |
|
902 ############################## cert_ssl ################################ |
|
903 # local shell function to create client + server certs for SSL test |
|
904 ######################################################################## |
|
905 cert_ssl() |
|
906 { |
|
907 ################# Creating Certs for SSL test ########################### |
|
908 # |
|
909 CERTFAILED=0 |
|
910 echo "$SCRIPTNAME: Creating Client CA Issued Certificates ===============" |
|
911 cert_create_cert ${CLIENTDIR} "TestUser" 70 ${D_CLIENT} |
|
912 |
|
913 echo "$SCRIPTNAME: Creating Server CA Issued Certificate for \\" |
|
914 echo " ${HOSTADDR} ------------------------------------" |
|
915 cert_create_cert ${SERVERDIR} "${HOSTADDR}" 100 ${D_SERVER} |
|
916 echo "$SCRIPTNAME: Creating Server CA Issued Certificate for \\" |
|
917 echo " ${HOSTADDR}-sni --------------------------------" |
|
918 CERTSERIAL=101 |
|
919 CERTNAME="${HOST}-sni${sniCertCount}.${DOMSUF}" |
|
920 cert_add_cert |
|
921 CU_ACTION="Modify trust attributes of Root CA -t TC,TC,TC" |
|
922 certu -M -n "TestCA" -t "TC,TC,TC" -d ${PROFILEDIR} -f "${R_PWFILE}" |
|
923 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
924 CU_ACTION="Modify trust attributes of EC Root CA -t TC,TC,TC" |
|
925 certu -M -n "TestCA-ec" -t "TC,TC,TC" -d ${PROFILEDIR} -f "${R_PWFILE}" |
|
926 fi |
|
927 # cert_init_cert ${SERVERDIR} "${HOSTADDR}" 1 ${D_SERVER} |
|
928 # echo "************* Copying CA files to ${SERVERDIR}" |
|
929 # cp ${CADIR}/*.db . |
|
930 # hw_acc |
|
931 # CU_ACTION="Creating ${CERTNAME}'s Server Cert" |
|
932 # CU_SUBJECT="CN=${CERTNAME}, O=BOGUS Netscape, L=Mountain View, ST=California, C=US" |
|
933 # certu -S -n "${CERTNAME}" -c "TestCA" -t "Pu,Pu,Pu" -d ${PROFILEDIR} \ |
|
934 # -f "${R_PWFILE}" -z "${R_NOISE_FILE}" -v 60 2>&1 |
|
935 |
|
936 if [ "$CERTFAILED" != 0 ] ; then |
|
937 cert_log "ERROR: SSL failed $RET" |
|
938 else |
|
939 cert_log "SUCCESS: SSL passed" |
|
940 fi |
|
941 |
|
942 echo "$SCRIPTNAME: Creating database for OCSP stapling tests ===============" |
|
943 echo "cp -r ${SERVERDIR} ${STAPLINGDIR}" |
|
944 cp -r ${R_SERVERDIR} ${R_STAPLINGDIR} |
|
945 pk12u -o ${R_STAPLINGDIR}/ca.p12 -n TestCA -k ${R_PWFILE} -w ${R_PWFILE} -d ${R_CADIR} |
|
946 pk12u -i ${R_STAPLINGDIR}/ca.p12 -k ${R_PWFILE} -w ${R_PWFILE} -d ${R_STAPLINGDIR} |
|
947 } |
|
948 ############################## cert_stresscerts ################################ |
|
949 # local shell function to create client certs for SSL stresstest |
|
950 ######################################################################## |
|
951 cert_stresscerts() |
|
952 { |
|
953 |
|
954 ############### Creating Certs for SSL stress test ####################### |
|
955 # |
|
956 CERTDIR="$CLIENTDIR" |
|
957 cd "${CERTDIR}" |
|
958 |
|
959 PROFILEDIR=`cd ${CERTDIR}; pwd` |
|
960 if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then |
|
961 PROFILEDIR=`cygpath -m ${PROFILEDIR}` |
|
962 fi |
|
963 if [ -n "${MULTIACCESS_DBM}" ]; then |
|
964 PROFILEDIR="multiaccess:${D_CLIENT}" |
|
965 fi |
|
966 CERTFAILED=0 |
|
967 echo "$SCRIPTNAME: Creating Client CA Issued Certificates ===============" |
|
968 |
|
969 CONTINUE=$GLOB_MAX_CERT |
|
970 CERTSERIAL=10 |
|
971 |
|
972 while [ $CONTINUE -ge $GLOB_MIN_CERT ] |
|
973 do |
|
974 CERTNAME="TestUser$CONTINUE" |
|
975 # cert_add_cert ${CLIENTDIR} "TestUser$CONTINUE" $CERTSERIAL |
|
976 cert_add_cert |
|
977 CERTSERIAL=`expr $CERTSERIAL + 1 ` |
|
978 CONTINUE=`expr $CONTINUE - 1 ` |
|
979 done |
|
980 if [ "$CERTFAILED" != 0 ] ; then |
|
981 cert_log "ERROR: StressCert failed $RET" |
|
982 else |
|
983 cert_log "SUCCESS: StressCert passed" |
|
984 fi |
|
985 } |
|
986 |
|
987 ############################## cert_fips ##################################### |
|
988 # local shell function to create certificates for FIPS tests |
|
989 ############################################################################## |
|
990 cert_fips() |
|
991 { |
|
992 CERTFAILED=0 |
|
993 echo "$SCRIPTNAME: Creating FIPS 140 DSA Certificates ==============" |
|
994 cert_init_cert "${FIPSDIR}" "FIPS PUB 140 Test Certificate" 1000 "${D_FIPS}" |
|
995 |
|
996 CU_ACTION="Initializing ${CERTNAME}'s Cert DB" |
|
997 certu -N -d "${PROFILEDIR}" -f "${R_FIPSPWFILE}" 2>&1 |
|
998 |
|
999 CU_ACTION="Loading root cert module to ${CERTNAME}'s Cert DB (ext.)" |
|
1000 modu -add "RootCerts" -libfile "${ROOTCERTSFILE}" -dbdir "${PROFILEDIR}" 2>&1 |
|
1001 |
|
1002 echo "$SCRIPTNAME: Enable FIPS mode on database -----------------------" |
|
1003 CU_ACTION="Enable FIPS mode on database for ${CERTNAME}" |
|
1004 echo "modutil -dbdir ${PROFILEDIR} -fips true " |
|
1005 ${BINDIR}/modutil -dbdir ${PROFILEDIR} -fips true 2>&1 <<MODSCRIPT |
|
1006 y |
|
1007 MODSCRIPT |
|
1008 RET=$? |
|
1009 if [ "$RET" -ne 0 ]; then |
|
1010 html_failed "${CU_ACTION} ($RET) " |
|
1011 cert_log "ERROR: ${CU_ACTION} failed $RET" |
|
1012 else |
|
1013 html_passed "${CU_ACTION}" |
|
1014 fi |
|
1015 |
|
1016 CU_ACTION="Generate Certificate for ${CERTNAME}" |
|
1017 CU_SUBJECT="CN=${CERTNAME}, E=fips@bogus.com, O=BOGUS NSS, OU=FIPS PUB 140, L=Mountain View, ST=California, C=US" |
|
1018 certu -S -n ${FIPSCERTNICK} -x -t "Cu,Cu,Cu" -d "${PROFILEDIR}" -f "${R_FIPSPWFILE}" -k dsa -v 600 -m 500 -z "${R_NOISE_FILE}" 2>&1 |
|
1019 if [ "$RET" -eq 0 ]; then |
|
1020 cert_log "SUCCESS: FIPS passed" |
|
1021 fi |
|
1022 } |
|
1023 |
|
1024 ############################## cert_eccurves ########################### |
|
1025 # local shell function to create server certs for all EC curves |
|
1026 ######################################################################## |
|
1027 cert_eccurves() |
|
1028 { |
|
1029 ################# Creating Certs for EC curves test ######################## |
|
1030 # |
|
1031 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1032 echo "$SCRIPTNAME: Creating Server CA Issued Certificate for " |
|
1033 echo " EC Curves Test Certificates ------------------------------------" |
|
1034 |
|
1035 cert_init_cert "${ECCURVES_DIR}" "EC Curves Test Certificates" 1 ${D_ECCURVES} |
|
1036 |
|
1037 CU_ACTION="Initializing EC Curve's Cert DB" |
|
1038 certu -N -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1039 |
|
1040 CU_ACTION="Loading root cert module to EC Curve's Cert DB" |
|
1041 modu -add "RootCerts" -libfile "${ROOTCERTSFILE}" -dbdir "${PROFILEDIR}" 2>&1 |
|
1042 |
|
1043 CU_ACTION="Import EC Root CA for $CERTNAME" |
|
1044 certu -A -n "TestCA-ec" -t "TC,TC,TC" -f "${R_PWFILE}" \ |
|
1045 -d "${PROFILEDIR}" -i "${R_CADIR}/TestCA-ec.ca.cert" 2>&1 |
|
1046 |
|
1047 if [ -n "${NSS_ECC_MORE_THAN_SUITE_B}" ] ; then |
|
1048 CURVE_LIST="c2pnb163v1 c2pnb163v2 c2pnb163v3 c2pnb176v1 \ |
|
1049 c2pnb208w1 c2pnb272w1 c2pnb304w1 c2pnb368w1 \ |
|
1050 c2tnb191v1 c2tnb191v2 c2tnb191v3 c2tnb239v1 \ |
|
1051 c2tnb239v2 c2tnb239v3 c2tnb359v1 c2tnb431r1 \ |
|
1052 nistb163 nistb233 nistb283 nistb409 nistb571 \ |
|
1053 nistk163 nistk233 nistk283 nistk409 nistk571 \ |
|
1054 nistp192 nistp224 nistp256 nistp384 nistp521 \ |
|
1055 prime192v1 prime192v2 prime192v3 \ |
|
1056 prime239v1 prime239v2 prime239v3 \ |
|
1057 secp112r1 secp112r2 secp128r1 secp128r2 secp160k1 \ |
|
1058 secp160r1 secp160r2 secp192k1 secp192r1 secp224k1 \ |
|
1059 secp224r1 secp256k1 secp256r1 secp384r1 secp521r1 \ |
|
1060 sect113r1 sect113r2 sect131r1 sect131r2 sect163k1 sect163r1 \ |
|
1061 sect163r2 sect193r1 sect193r2 sect233k1 sect233r1 sect239k1 \ |
|
1062 sect283k1 sect283r1 sect409k1 sect409r1 sect571k1 sect571r1" |
|
1063 else |
|
1064 CURVE_LIST="nistp256 nistp384 nistp521" |
|
1065 fi |
|
1066 CERTSERIAL=2000 |
|
1067 |
|
1068 for CURVE in ${CURVE_LIST} |
|
1069 do |
|
1070 CERTFAILED=0 |
|
1071 CERTNAME="Curve-${CURVE}" |
|
1072 CERTSERIAL=`expr $CERTSERIAL + 1 ` |
|
1073 CU_ACTION="Generate EC Cert Request for $CERTNAME" |
|
1074 CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}-ec@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
1075 certu -R -k ec -q "${CURVE}" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
1076 -z "${R_NOISE_FILE}" -o req 2>&1 |
|
1077 |
|
1078 if [ $RET -eq 0 ] ; then |
|
1079 CU_ACTION="Sign ${CERTNAME}'s EC Request" |
|
1080 certu -C -c "TestCA-ec" -m "$CERTSERIAL" -v 60 -d "${P_R_CADIR}" \ |
|
1081 -i req -o "${CERTNAME}-ec.cert" -f "${R_PWFILE}" "$1" 2>&1 |
|
1082 fi |
|
1083 |
|
1084 if [ $RET -eq 0 ] ; then |
|
1085 CU_ACTION="Import $CERTNAME's EC Cert" |
|
1086 certu -A -n "${CERTNAME}-ec" -t "u,u,u" -d "${PROFILEDIR}" \ |
|
1087 -f "${R_PWFILE}" -i "${CERTNAME}-ec.cert" 2>&1 |
|
1088 fi |
|
1089 done |
|
1090 |
|
1091 fi # $NSS_DISABLE_ECC |
|
1092 } |
|
1093 |
|
1094 ########################### cert_extensions_test ############################# |
|
1095 # local shell function to test cert extensions generation |
|
1096 ############################################################################## |
|
1097 cert_extensions_test() |
|
1098 { |
|
1099 COUNT=`expr ${COUNT} + 1` |
|
1100 CERTNAME=TestExt${COUNT} |
|
1101 CU_SUBJECT="CN=${CERTNAME}, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
1102 |
|
1103 echo |
|
1104 echo certutil -d ${CERT_EXTENSIONS_DIR} -S -n ${CERTNAME} \ |
|
1105 -t "u,u,u" -o ${CERT_EXTENSIONS_DIR}/tempcert -s "${CU_SUBJECT}" -x -f ${R_PWFILE} \ |
|
1106 -z "${R_NOISE_FILE}" -${OPT} \< ${TARG_FILE} |
|
1107 echo "certutil options:" |
|
1108 cat ${TARG_FILE} |
|
1109 ${BINDIR}/certutil -d ${CERT_EXTENSIONS_DIR} -S -n ${CERTNAME} \ |
|
1110 -t "u,u,u" -o ${CERT_EXTENSIONS_DIR}/tempcert -s "${CU_SUBJECT}" -x -f ${R_PWFILE} \ |
|
1111 -z "${R_NOISE_FILE}" -${OPT} < ${TARG_FILE} |
|
1112 RET=$? |
|
1113 if [ "${RET}" -ne 0 ]; then |
|
1114 CERTFAILED=1 |
|
1115 html_failed "${TESTNAME} (${COUNT}) - Create and Add Certificate" |
|
1116 cert_log "ERROR: ${TESTNAME} - Create and Add Certificate failed" |
|
1117 return 1 |
|
1118 fi |
|
1119 |
|
1120 echo certutil -d ${CERT_EXTENSIONS_DIR} -L -n ${CERTNAME} |
|
1121 EXTLIST=`${BINDIR}/certutil -d ${CERT_EXTENSIONS_DIR} -L -n ${CERTNAME}` |
|
1122 RET=$? |
|
1123 echo "${EXTLIST}" |
|
1124 if [ "${RET}" -ne 0 ]; then |
|
1125 CERTFAILED=1 |
|
1126 html_failed "${TESTNAME} (${COUNT}) - List Certificate" |
|
1127 cert_log "ERROR: ${TESTNAME} - List Certificate failed" |
|
1128 return 1 |
|
1129 fi |
|
1130 |
|
1131 for FL in `echo ${FILTERLIST} | tr \| ' '`; do |
|
1132 FL="`echo ${FL} | tr _ ' '`" |
|
1133 EXPSTAT=0 |
|
1134 if [ X`echo "${FL}" | cut -c 1` = 'X!' ]; then |
|
1135 EXPSTAT=1 |
|
1136 FL=`echo ${FL} | tr -d '!'` |
|
1137 fi |
|
1138 echo "${EXTLIST}" | grep "${FL}" >/dev/null 2>&1 |
|
1139 RET=$? |
|
1140 if [ "${RET}" -ne "${EXPSTAT}" ]; then |
|
1141 CERTFAILED=1 |
|
1142 html_failed "${TESTNAME} (${COUNT}) - Looking for ${FL}" "returned ${RET}, expected is ${EXPSTAT}" |
|
1143 cert_log "ERROR: ${TESTNAME} - Looking for ${FL} failed" |
|
1144 return 1 |
|
1145 fi |
|
1146 done |
|
1147 |
|
1148 html_passed "${TESTNAME} (${COUNT})" |
|
1149 return 0 |
|
1150 } |
|
1151 |
|
1152 ############################## cert_extensions ############################### |
|
1153 # local shell function to run cert extensions tests |
|
1154 ############################################################################## |
|
1155 cert_extensions() |
|
1156 { |
|
1157 CERTNAME=TestExt |
|
1158 cert_create_cert ${CERT_EXTENSIONS_DIR} ${CERTNAME} 90 ${D_CERT_EXTENSTIONS} |
|
1159 TARG_FILE=${CERT_EXTENSIONS_DIR}/test.args |
|
1160 |
|
1161 COUNT=0 |
|
1162 while read ARG OPT FILTERLIST; do |
|
1163 if [ X"`echo ${ARG} | cut -c 1`" = "X#" ]; then |
|
1164 continue |
|
1165 fi |
|
1166 if [ X"`echo ${ARG} | cut -c 1`" = "X!" ]; then |
|
1167 TESTNAME="${FILTERLIST}" |
|
1168 continue |
|
1169 fi |
|
1170 if [ X"${ARG}" = "X=" ]; then |
|
1171 cert_extensions_test |
|
1172 rm -f ${TARG_FILE} |
|
1173 else |
|
1174 echo ${ARG} >> ${TARG_FILE} |
|
1175 fi |
|
1176 done < ${QADIR}/cert/certext.txt |
|
1177 } |
|
1178 |
|
1179 cert_make_with_param() |
|
1180 { |
|
1181 DIRPASS="$1" |
|
1182 CERTNAME="$2" |
|
1183 MAKE="$3" |
|
1184 SUBJ="$4" |
|
1185 EXTRA="$5" |
|
1186 EXPECT="$6" |
|
1187 TESTNAME="$7" |
|
1188 |
|
1189 echo certutil ${DIRPASS} -s "${SUBJ}" ${MAKE} ${CERTNAME} ${EXTRA} |
|
1190 ${BINDIR}/certutil ${DIRPASS} -s "${SUBJ}" ${MAKE} ${CERTNAME} ${EXTRA} |
|
1191 |
|
1192 RET=$? |
|
1193 if [ "${RET}" -ne "${EXPECT}" ]; then |
|
1194 # if we expected failure to create, then delete unexpected certificate |
|
1195 if [ "${EXPECT}" -ne 0 ]; then |
|
1196 ${BINDIR}/certutil ${DIRPASS} -D ${CERTNAME} |
|
1197 fi |
|
1198 |
|
1199 CERTFAILED=1 |
|
1200 html_failed "${TESTNAME} (${COUNT}) - ${EXTRA}" |
|
1201 cert_log "ERROR: ${TESTNAME} - ${EXTRA} failed" |
|
1202 return 1 |
|
1203 fi |
|
1204 |
|
1205 html_passed "${TESTNAME} (${COUNT})" |
|
1206 return 0 |
|
1207 } |
|
1208 |
|
1209 cert_list_and_count_dns() |
|
1210 { |
|
1211 DIRPASS="$1" |
|
1212 CERTNAME="$2" |
|
1213 EXPECT="$3" |
|
1214 EXPECTCOUNT="$4" |
|
1215 TESTNAME="$5" |
|
1216 |
|
1217 echo certutil ${DIRPASS} -L ${CERTNAME} |
|
1218 ${BINDIR}/certutil ${DIRPASS} -L ${CERTNAME} |
|
1219 |
|
1220 RET=$? |
|
1221 if [ "${RET}" -ne "${EXPECT}" ]; then |
|
1222 CERTFAILED=1 |
|
1223 html_failed "${TESTNAME} (${COUNT}) - list and count" |
|
1224 cert_log "ERROR: ${TESTNAME} - list and count failed" |
|
1225 return 1 |
|
1226 fi |
|
1227 |
|
1228 LISTCOUNT=`${BINDIR}/certutil ${DIRPASS} -L ${CERTNAME} | grep -wc DNS` |
|
1229 if [ "${LISTCOUNT}" -ne "${EXPECTCOUNT}" ]; then |
|
1230 CERTFAILED=1 |
|
1231 html_failed "${TESTNAME} (${COUNT}) - list and count" |
|
1232 cert_log "ERROR: ${TESTNAME} - list and count failed" |
|
1233 return 1 |
|
1234 fi |
|
1235 |
|
1236 html_passed "${TESTNAME} (${COUNT})" |
|
1237 return 0 |
|
1238 } |
|
1239 |
|
1240 cert_dump_ext_to_file() |
|
1241 { |
|
1242 DIRPASS="$1" |
|
1243 CERTNAME="$2" |
|
1244 OID="$3" |
|
1245 OUTFILE="$4" |
|
1246 EXPECT="$5" |
|
1247 TESTNAME="$6" |
|
1248 |
|
1249 echo certutil ${DIRPASS} -L ${CERTNAME} --dump-ext-val ${OID} |
|
1250 echo "writing output to ${OUTFILE}" |
|
1251 ${BINDIR}/certutil ${DIRPASS} -L ${CERTNAME} --dump-ext-val ${OID} > ${OUTFILE} |
|
1252 |
|
1253 RET=$? |
|
1254 if [ "${RET}" -ne "${EXPECT}" ]; then |
|
1255 CERTFAILED=1 |
|
1256 html_failed "${TESTNAME} (${COUNT}) - dump to file" |
|
1257 cert_log "ERROR: ${TESTNAME} - dump to file failed" |
|
1258 return 1 |
|
1259 fi |
|
1260 |
|
1261 html_passed "${TESTNAME} (${COUNT})" |
|
1262 return 0 |
|
1263 } |
|
1264 |
|
1265 cert_delete() |
|
1266 { |
|
1267 DIRPASS="$1" |
|
1268 CERTNAME="$2" |
|
1269 EXPECT="$3" |
|
1270 TESTNAME="$4" |
|
1271 |
|
1272 echo certutil ${DIRPASS} -D ${CERTNAME} |
|
1273 ${BINDIR}/certutil ${DIRPASS} -D ${CERTNAME} |
|
1274 |
|
1275 RET=$? |
|
1276 if [ "${RET}" -ne "${EXPECT}" ]; then |
|
1277 CERTFAILED=1 |
|
1278 html_failed "${TESTNAME} (${COUNT}) - delete cert" |
|
1279 cert_log "ERROR: ${TESTNAME} - delete cert failed" |
|
1280 return 1 |
|
1281 fi |
|
1282 |
|
1283 html_passed "${TESTNAME} (${COUNT})" |
|
1284 return 0 |
|
1285 } |
|
1286 |
|
1287 cert_inc_count() |
|
1288 { |
|
1289 COUNT=`expr ${COUNT} + 1` |
|
1290 } |
|
1291 |
|
1292 ############################## cert_crl_ssl ############################ |
|
1293 # test adding subject-alt-name, dumping, and adding generic extension |
|
1294 ######################################################################## |
|
1295 cert_san_and_generic_extensions() |
|
1296 { |
|
1297 EXTDUMP=${CERT_EXTENSIONS_DIR}/sanext.der |
|
1298 |
|
1299 DIR="-d ${CERT_EXTENSIONS_DIR} -f ${R_PWFILE}" |
|
1300 CERTNAME="-n WithSAN" |
|
1301 MAKE="-S -t ,, -x -z ${R_NOISE_FILE}" |
|
1302 SUBJ="CN=example.com" |
|
1303 |
|
1304 TESTNAME="san-and-generic-extensions" |
|
1305 |
|
1306 cert_inc_count |
|
1307 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1308 "--extSAN example.com" 255 \ |
|
1309 "create cert with invalid SAN parameter" |
|
1310 |
|
1311 cert_inc_count |
|
1312 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1313 "--extSAN example.com,dns:www.example.com" 255 \ |
|
1314 "create cert with invalid SAN parameter" |
|
1315 |
|
1316 TN="create cert with valid SAN parameter" |
|
1317 |
|
1318 cert_inc_count |
|
1319 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1320 "--extSAN dns:example.com,dns:www.example.com" 0 \ |
|
1321 "${TN}" |
|
1322 |
|
1323 cert_inc_count |
|
1324 cert_list_and_count_dns "${DIR}" "${CERTNAME}" 0 2 \ |
|
1325 "${TN}" |
|
1326 |
|
1327 cert_inc_count |
|
1328 cert_dump_ext_to_file "${DIR}" "${CERTNAME}" "2.5.29.17" "${EXTDUMP}" 0 \ |
|
1329 "dump extension 2.5.29.17 to file ${EXTDUMP}" |
|
1330 |
|
1331 cert_inc_count |
|
1332 cert_delete "${DIR}" "${CERTNAME}" 0 \ |
|
1333 "${TN}" |
|
1334 |
|
1335 cert_inc_count |
|
1336 cert_list_and_count_dns "${DIR}" "${CERTNAME}" 255 0 \ |
|
1337 "expect failure to list cert, because we deleted it" |
|
1338 |
|
1339 cert_inc_count |
|
1340 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1341 "--extGeneric ${EXTDUMP}" 255 \ |
|
1342 "create cert with invalid generic ext parameter" |
|
1343 |
|
1344 cert_inc_count |
|
1345 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1346 "--extGeneric not-critical:${EXTDUMP}" 255 \ |
|
1347 "create cert with invalid generic ext parameter" |
|
1348 |
|
1349 cert_inc_count |
|
1350 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1351 "--extGeneric not-critical:${EXTDUMP},2.5.29.17:critical:${EXTDUMP}" 255 \ |
|
1352 "create cert with invalid generic ext parameter" |
|
1353 |
|
1354 TN="create cert with valid generic ext parameter" |
|
1355 |
|
1356 cert_inc_count |
|
1357 cert_make_with_param "${DIR}" "${CERTNAME}" "${MAKE}" "${SUBJ}" \ |
|
1358 "--extGeneric 2.5.29.17:not-critical:${EXTDUMP}" 0 \ |
|
1359 "${TN}" |
|
1360 |
|
1361 cert_inc_count |
|
1362 cert_list_and_count_dns "${DIR}" "${CERTNAME}" 0 2 \ |
|
1363 "${TN}" |
|
1364 |
|
1365 cert_inc_count |
|
1366 cert_delete "${DIR}" "${CERTNAME}" 0 \ |
|
1367 "${TN}" |
|
1368 |
|
1369 cert_inc_count |
|
1370 cert_list_and_count_dns "${DIR}" "${CERTNAME}" 255 0 \ |
|
1371 "expect failure to list cert, because we deleted it" |
|
1372 } |
|
1373 |
|
1374 ############################## cert_crl_ssl ############################ |
|
1375 # local shell function to generate certs and crls for SSL tests |
|
1376 ######################################################################## |
|
1377 cert_crl_ssl() |
|
1378 { |
|
1379 |
|
1380 ################# Creating Certs ################################### |
|
1381 # |
|
1382 CERTFAILED=0 |
|
1383 CERTSERIAL=${CRL_GRP_1_BEGIN} |
|
1384 |
|
1385 cd $CADIR |
|
1386 |
|
1387 PROFILEDIR=`cd ${CLIENTDIR}; pwd` |
|
1388 if [ "${OS_ARCH}" = "WINNT" -a "$OS_NAME" = "CYGWIN_NT" ]; then |
|
1389 PROFILEDIR=`cygpath -m ${PROFILEDIR}` |
|
1390 fi |
|
1391 CRL_GRPS_END=`expr ${CRL_GRP_1_BEGIN} + ${TOTAL_CRL_RANGE} - 1` |
|
1392 echo "$SCRIPTNAME: Creating Client CA Issued Certificates Range $CRL_GRP_1_BEGIN - $CRL_GRPS_END ===" |
|
1393 CU_ACTION="Creating client test certs" |
|
1394 |
|
1395 while [ $CERTSERIAL -le $CRL_GRPS_END ] |
|
1396 do |
|
1397 CERTNAME="TestUser$CERTSERIAL" |
|
1398 cert_add_cert |
|
1399 CERTSERIAL=`expr $CERTSERIAL + 1 ` |
|
1400 done |
|
1401 |
|
1402 #################### CRL Creation ############################## |
|
1403 CRL_GEN_RES=0 |
|
1404 echo "$SCRIPTNAME: Creating CA CRL =====================================" |
|
1405 |
|
1406 CRL_GRP_END=`expr ${CRL_GRP_1_BEGIN} + ${CRL_GRP_1_RANGE} - 1` |
|
1407 CRL_FILE_GRP_1=${R_SERVERDIR}/root.crl_${CRL_GRP_1_BEGIN}-${CRL_GRP_END} |
|
1408 CRL_FILE=${CRL_FILE_GRP_1} |
|
1409 |
|
1410 CRLUPDATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1411 CU_ACTION="Generating CRL for range ${CRL_GRP_1_BEGIN}-${CRL_GRP_END} TestCA authority" |
|
1412 CRL_GRP_END_=`expr ${CRL_GRP_END} - 1` |
|
1413 crlu -d $CADIR -G -n "TestCA" -f ${R_PWFILE} \ |
|
1414 -o ${CRL_FILE_GRP_1}_or <<EOF_CRLINI |
|
1415 update=$CRLUPDATE |
|
1416 addcert ${CRL_GRP_1_BEGIN}-${CRL_GRP_END_} $CRL_GRP_DATE |
|
1417 addext reasonCode 0 4 |
|
1418 addext issuerAltNames 0 "rfc822Name:caemail@ca.com|dnsName:ca.com|directoryName:CN=NSS Test CA,O=BOGUS NSS,L=Mountain View,ST=California,C=US|URI:http://ca.com|ipAddress:192.168.0.1|registerID=reg CA" |
|
1419 EOF_CRLINI |
|
1420 # This extension should be added to the list, but currently nss has bug |
|
1421 #addext authKeyId 0 "CN=NSS Test CA,O=BOGUS NSS,L=Mountain View,ST=California,C=US" 1 |
|
1422 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1423 chmod 600 ${CRL_FILE_GRP_1}_or |
|
1424 |
|
1425 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1426 CU_ACTION="Generating CRL (ECC) for range ${CRL_GRP_1_BEGIN}-${CRL_GRP_END} TestCA-ec authority" |
|
1427 |
|
1428 # Until Bug 292285 is resolved, do not encode x400 Addresses. After |
|
1429 # the bug is resolved, reintroduce "x400Address:x400Address" within |
|
1430 # addext issuerAltNames ... |
|
1431 crlu -q -d $CADIR -G -n "TestCA-ec" -f ${R_PWFILE} \ |
|
1432 -o ${CRL_FILE_GRP_1}_or-ec <<EOF_CRLINI |
|
1433 update=$CRLUPDATE |
|
1434 addcert ${CRL_GRP_1_BEGIN}-${CRL_GRP_END_} $CRL_GRP_DATE |
|
1435 addext reasonCode 0 4 |
|
1436 addext issuerAltNames 0 "rfc822Name:ca-ecemail@ca.com|dnsName:ca-ec.com|directoryName:CN=NSS Test CA (ECC),O=BOGUS NSS,L=Mountain View,ST=California,C=US|URI:http://ca-ec.com|ipAddress:192.168.0.1|registerID=reg CA (ECC)" |
|
1437 EOF_CRLINI |
|
1438 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1439 chmod 600 ${CRL_FILE_GRP_1}_or-ec |
|
1440 fi |
|
1441 |
|
1442 echo test > file |
|
1443 ############################# Modification ################################## |
|
1444 |
|
1445 echo "$SCRIPTNAME: Modifying CA CRL by adding one more cert ============" |
|
1446 sleep 2 |
|
1447 CRLUPDATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1448 CRL_GRP_DATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1449 CU_ACTION="Modify CRL by adding one more cert" |
|
1450 crlu -d $CADIR -M -n "TestCA" -f ${R_PWFILE} -o ${CRL_FILE_GRP_1}_or1 \ |
|
1451 -i ${CRL_FILE_GRP_1}_or <<EOF_CRLINI |
|
1452 update=$CRLUPDATE |
|
1453 addcert ${CRL_GRP_END} $CRL_GRP_DATE |
|
1454 EOF_CRLINI |
|
1455 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1456 chmod 600 ${CRL_FILE_GRP_1}_or1 |
|
1457 TEMPFILES="$TEMPFILES ${CRL_FILE_GRP_1}_or" |
|
1458 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1459 CU_ACTION="Modify CRL (ECC) by adding one more cert" |
|
1460 crlu -d $CADIR -M -n "TestCA-ec" -f ${R_PWFILE} \ |
|
1461 -o ${CRL_FILE_GRP_1}_or1-ec -i ${CRL_FILE_GRP_1}_or-ec <<EOF_CRLINI |
|
1462 update=$CRLUPDATE |
|
1463 addcert ${CRL_GRP_END} $CRL_GRP_DATE |
|
1464 EOF_CRLINI |
|
1465 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1466 chmod 600 ${CRL_FILE_GRP_1}_or1-ec |
|
1467 TEMPFILES="$TEMPFILES ${CRL_FILE_GRP_1}_or-ec" |
|
1468 fi |
|
1469 |
|
1470 ########### Removing one cert ${UNREVOKED_CERT_GRP_1} ####################### |
|
1471 echo "$SCRIPTNAME: Modifying CA CRL by removing one cert ===============" |
|
1472 CU_ACTION="Modify CRL by removing one cert" |
|
1473 sleep 2 |
|
1474 CRLUPDATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1475 crlu -d $CADIR -M -n "TestCA" -f ${R_PWFILE} -o ${CRL_FILE_GRP_1} \ |
|
1476 -i ${CRL_FILE_GRP_1}_or1 <<EOF_CRLINI |
|
1477 update=$CRLUPDATE |
|
1478 rmcert ${UNREVOKED_CERT_GRP_1} |
|
1479 EOF_CRLINI |
|
1480 chmod 600 ${CRL_FILE_GRP_1} |
|
1481 TEMPFILES="$TEMPFILES ${CRL_FILE_GRP_1}_or1" |
|
1482 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1483 CU_ACTION="Modify CRL (ECC) by removing one cert" |
|
1484 crlu -d $CADIR -M -n "TestCA-ec" -f ${R_PWFILE} -o ${CRL_FILE_GRP_1}-ec \ |
|
1485 -i ${CRL_FILE_GRP_1}_or1-ec <<EOF_CRLINI |
|
1486 update=$CRLUPDATE |
|
1487 rmcert ${UNREVOKED_CERT_GRP_1} |
|
1488 EOF_CRLINI |
|
1489 chmod 600 ${CRL_FILE_GRP_1}-ec |
|
1490 TEMPFILES="$TEMPFILES ${CRL_FILE_GRP_1}_or1-ec" |
|
1491 fi |
|
1492 |
|
1493 ########### Creating second CRL which includes groups 1 and 2 ############## |
|
1494 CRL_GRP_END=`expr ${CRL_GRP_2_BEGIN} + ${CRL_GRP_2_RANGE} - 1` |
|
1495 CRL_FILE_GRP_2=${R_SERVERDIR}/root.crl_${CRL_GRP_2_BEGIN}-${CRL_GRP_END} |
|
1496 |
|
1497 echo "$SCRIPTNAME: Creating CA CRL for groups 1 and 2 ===============" |
|
1498 sleep 2 |
|
1499 CRLUPDATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1500 CRL_GRP_DATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1501 CU_ACTION="Creating CRL for groups 1 and 2" |
|
1502 crlu -d $CADIR -M -n "TestCA" -f ${R_PWFILE} -o ${CRL_FILE_GRP_2} \ |
|
1503 -i ${CRL_FILE_GRP_1} <<EOF_CRLINI |
|
1504 update=$CRLUPDATE |
|
1505 addcert ${CRL_GRP_2_BEGIN}-${CRL_GRP_END} $CRL_GRP_DATE |
|
1506 addext invalidityDate 0 $CRLUPDATE |
|
1507 rmcert ${UNREVOKED_CERT_GRP_2} |
|
1508 EOF_CRLINI |
|
1509 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1510 chmod 600 ${CRL_FILE_GRP_2} |
|
1511 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1512 CU_ACTION="Creating CRL (ECC) for groups 1 and 2" |
|
1513 crlu -d $CADIR -M -n "TestCA-ec" -f ${R_PWFILE} -o ${CRL_FILE_GRP_2}-ec \ |
|
1514 -i ${CRL_FILE_GRP_1}-ec <<EOF_CRLINI |
|
1515 update=$CRLUPDATE |
|
1516 addcert ${CRL_GRP_2_BEGIN}-${CRL_GRP_END} $CRL_GRP_DATE |
|
1517 addext invalidityDate 0 $CRLUPDATE |
|
1518 rmcert ${UNREVOKED_CERT_GRP_2} |
|
1519 EOF_CRLINI |
|
1520 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1521 chmod 600 ${CRL_FILE_GRP_2}-ec |
|
1522 fi |
|
1523 |
|
1524 ########### Creating second CRL which includes groups 1, 2 and 3 ############## |
|
1525 CRL_GRP_END=`expr ${CRL_GRP_3_BEGIN} + ${CRL_GRP_3_RANGE} - 1` |
|
1526 CRL_FILE_GRP_3=${R_SERVERDIR}/root.crl_${CRL_GRP_3_BEGIN}-${CRL_GRP_END} |
|
1527 |
|
1528 |
|
1529 |
|
1530 echo "$SCRIPTNAME: Creating CA CRL for groups 1, 2 and 3 ===============" |
|
1531 sleep 2 |
|
1532 CRLUPDATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1533 CRL_GRP_DATE=`date -u "+%Y%m%d%H%M%SZ"` |
|
1534 CU_ACTION="Creating CRL for groups 1, 2 and 3" |
|
1535 crlu -d $CADIR -M -n "TestCA" -f ${R_PWFILE} -o ${CRL_FILE_GRP_3} \ |
|
1536 -i ${CRL_FILE_GRP_2} <<EOF_CRLINI |
|
1537 update=$CRLUPDATE |
|
1538 addcert ${CRL_GRP_3_BEGIN}-${CRL_GRP_END} $CRL_GRP_DATE |
|
1539 rmcert ${UNREVOKED_CERT_GRP_3} |
|
1540 addext crlNumber 0 2 |
|
1541 EOF_CRLINI |
|
1542 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1543 chmod 600 ${CRL_FILE_GRP_3} |
|
1544 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1545 CU_ACTION="Creating CRL (ECC) for groups 1, 2 and 3" |
|
1546 crlu -d $CADIR -M -n "TestCA-ec" -f ${R_PWFILE} -o ${CRL_FILE_GRP_3}-ec \ |
|
1547 -i ${CRL_FILE_GRP_2}-ec <<EOF_CRLINI |
|
1548 update=$CRLUPDATE |
|
1549 addcert ${CRL_GRP_3_BEGIN}-${CRL_GRP_END} $CRL_GRP_DATE |
|
1550 rmcert ${UNREVOKED_CERT_GRP_3} |
|
1551 addext crlNumber 0 2 |
|
1552 EOF_CRLINI |
|
1553 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1554 chmod 600 ${CRL_FILE_GRP_3}-ec |
|
1555 fi |
|
1556 |
|
1557 ############ Importing Server CA Issued CRL for certs of first group ####### |
|
1558 |
|
1559 echo "$SCRIPTNAME: Importing Server CA Issued CRL for certs ${CRL_GRP_BEGIN} trough ${CRL_GRP_END}" |
|
1560 CU_ACTION="Importing CRL for groups 1" |
|
1561 crlu -D -n TestCA -f "${R_PWFILE}" -d "${R_SERVERDIR}" |
|
1562 crlu -I -i ${CRL_FILE} -n "TestCA" -f "${R_PWFILE}" -d "${R_SERVERDIR}" |
|
1563 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1564 if [ -z "$NSS_DISABLE_ECC" ] ; then |
|
1565 CU_ACTION="Importing CRL (ECC) for groups 1" |
|
1566 crlu -D -n TestCA-ec -f "${R_PWFILE}" -d "${R_SERVERDIR}" |
|
1567 crlu -I -i ${CRL_FILE}-ec -n "TestCA-ec" -f "${R_PWFILE}" \ |
|
1568 -d "${R_SERVERDIR}" |
|
1569 CRL_GEN_RES=`expr $? + $CRL_GEN_RES` |
|
1570 fi |
|
1571 |
|
1572 if [ "$CERTFAILED" != 0 -o "$CRL_GEN_RES" != 0 ] ; then |
|
1573 cert_log "ERROR: SSL CRL prep failed $CERTFAILED : $CRL_GEN_RES" |
|
1574 else |
|
1575 cert_log "SUCCESS: SSL CRL prep passed" |
|
1576 fi |
|
1577 } |
|
1578 |
|
1579 ################# |
|
1580 # Verify the we can successfully change the password on the database |
|
1581 # |
|
1582 cert_test_password() |
|
1583 { |
|
1584 CERTFAILED=0 |
|
1585 echo "$SCRIPTNAME: Create A Password Test Cert ==============" |
|
1586 cert_init_cert "${DBPASSDIR}" "Password Test Cert" 1000 "${D_DBPASSDIR}" |
|
1587 |
|
1588 echo "$SCRIPTNAME: Create A Password Test Ca --------" |
|
1589 ALL_CU_SUBJECT="CN=NSS Password Test CA, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
1590 cert_CA ${DBPASSDIR} PasswordCA -x "CTu,CTu,CTu" ${D_DBPASS} "1" |
|
1591 |
|
1592 # now change the password |
|
1593 CU_ACTION="Changing password on ${CERTNAME}'s Cert DB" |
|
1594 certu -W -d "${PROFILEDIR}" -f "${R_PWFILE}" -@ "${R_FIPSPWFILE}" 2>&1 |
|
1595 |
|
1596 # finally make sure we can use the old key with the new password |
|
1597 CU_ACTION="Generate Certificate for ${CERTNAME} with new password" |
|
1598 CU_SUBJECT="CN=${CERTNAME}, E=password@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
1599 certu -S -n PasswordCert -c PasswordCA -t "u,u,u" -d "${PROFILEDIR}" -f "${R_FIPSPWFILE}" -z "${R_NOISE_FILE}" 2>&1 |
|
1600 if [ "$RET" -eq 0 ]; then |
|
1601 cert_log "SUCCESS: PASSWORD passed" |
|
1602 fi |
|
1603 CU_ACTION="Verify Certificate for ${CERTNAME} with new password" |
|
1604 certu -V -n PasswordCert -u S -d "${PROFILEDIR}" -f "${R_FIPSPWFILE}" 2>&1 |
|
1605 } |
|
1606 |
|
1607 ############################### |
|
1608 # test if we can distrust a certificate. |
|
1609 # |
|
1610 # we create 3 new certs: |
|
1611 # 1 leaf signed by the trusted root. |
|
1612 # 1 intermediate signed by the trusted root. |
|
1613 # 1 leaf signed by the intermediate. |
|
1614 # |
|
1615 # we mark the first leaf and the intermediate as explicitly untrusted. |
|
1616 # we then try to verify the two leaf certs for our possible usages. |
|
1617 # All verification should fail. |
|
1618 # |
|
1619 cert_test_distrust() |
|
1620 { |
|
1621 echo "$SCRIPTNAME: Creating Distrusted Certificate" |
|
1622 cert_create_cert ${DISTRUSTDIR} "Distrusted" 2000 ${D_DISTRUST} |
|
1623 CU_ACTION="Mark CERT as unstrusted" |
|
1624 certu -M -n "Distrusted" -t p,p,p -d ${PROFILEDIR} -f "${R_PWFILE}" 2>&1 |
|
1625 echo "$SCRIPTNAME: Creating Distrusted Intermediate" |
|
1626 CERTNAME="DistrustedCA" |
|
1627 ALL_CU_SUBJECT="CN=${CERTNAME}, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
1628 cert_CA ${CADIR} "${CERTNAME}" "-c TestCA" ",," ${D_CA} 2010 2>&1 |
|
1629 CU_ACTION="Import Distrusted Intermediate" |
|
1630 certu -A -n "${CERTNAME}" -t "p,p,p" -f "${R_PWFILE}" -d "${PROFILEDIR}" \ |
|
1631 -i "${R_CADIR}/DistrustedCA.ca.cert" 2>&1 |
|
1632 |
|
1633 # now create the last leaf signed by our distrusted CA |
|
1634 # since it's not signed by TestCA it requires more steps. |
|
1635 CU_ACTION="Generate Cert Request for Leaf Chained to Distrusted CA" |
|
1636 CERTNAME="LeafChainedToDistrustedCA" |
|
1637 CU_SUBJECT="CN=${CERTNAME}, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" |
|
1638 certu -R -d "${PROFILEDIR}" -f "${R_PWFILE}" -z "${R_NOISE_FILE}" -o req 2>&1 |
|
1639 |
|
1640 CU_ACTION="Sign ${CERTNAME}'s Request" |
|
1641 cp ${CERTDIR}/req ${CADIR} |
|
1642 certu -C -c "DistrustedCA" -m 100 -v 60 -d "${P_R_CADIR}" \ |
|
1643 -i req -o "${CERTNAME}.cert" -f "${R_PWFILE}" 2>&1 |
|
1644 |
|
1645 CU_ACTION="Import $CERTNAME's Cert -t u,u,u" |
|
1646 certu -A -n "$CERTNAME" -t "u,u,u" -d "${PROFILEDIR}" -f "${R_PWFILE}" \ |
|
1647 -i "${CERTNAME}.cert" 2>&1 |
|
1648 |
|
1649 RETEXPECTED=255 |
|
1650 CU_ACTION="Verify ${CERTNAME} Cert for SSL Server" |
|
1651 certu -V -n ${CERTNAME} -u V -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1652 CU_ACTION="Verify ${CERTNAME} Cert for SSL Client" |
|
1653 certu -V -n ${CERTNAME} -u C -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1654 CU_ACTION="Verify ${CERTNAME} Cert for Email signer" |
|
1655 certu -V -n ${CERTNAME} -u S -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1656 CU_ACTION="Verify ${CERTNAME} Cert for Email recipient" |
|
1657 certu -V -n ${CERTNAME} -u R -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1658 CU_ACTION="Verify ${CERTNAME} Cert for OCSP responder" |
|
1659 certu -V -n ${CERTNAME} -u O -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1660 CU_ACTION="Verify ${CERTNAME} Cert for Object Signer" |
|
1661 certu -V -n ${CERTNAME} -u J -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1662 |
|
1663 CERTNAME="Distrusted" |
|
1664 CU_ACTION="Verify ${CERTNAME} Cert for SSL Server" |
|
1665 certu -V -n ${CERTNAME} -u V -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1666 CU_ACTION="Verify ${CERTNAME} Cert for SSL Client" |
|
1667 certu -V -n ${CERTNAME} -u C -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1668 CU_ACTION="Verify ${CERTNAME} Cert for Email signer" |
|
1669 certu -V -n ${CERTNAME} -u S -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1670 CU_ACTION="Verify ${CERTNAME} Cert for Email recipient" |
|
1671 certu -V -n ${CERTNAME} -u R -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1672 CU_ACTION="Verify ${CERTNAME} Cert for OCSP responder" |
|
1673 certu -V -n ${CERTNAME} -u O -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1674 CU_ACTION="Verify ${CERTNAME} Cert for Object Signer" |
|
1675 certu -V -n ${CERTNAME} -u J -d "${PROFILEDIR}" -f "${R_PWFILE}" 2>&1 |
|
1676 RETEXPECTED=0 |
|
1677 } |
|
1678 |
|
1679 cert_test_ocspresp() |
|
1680 { |
|
1681 echo "$SCRIPTNAME: OCSP response creation selftest" |
|
1682 OR_ACTION="perform selftest" |
|
1683 RETEXPECTED=0 |
|
1684 ocspr ${SERVER_CADIR} "serverCA" "chain-1-serverCA" -f "${R_PWFILE}" 2>&1 |
|
1685 } |
|
1686 |
|
1687 ############################## cert_cleanup ############################ |
|
1688 # local shell function to finish this script (no exit since it might be |
|
1689 # sourced) |
|
1690 ######################################################################## |
|
1691 cert_cleanup() |
|
1692 { |
|
1693 cert_log "$SCRIPTNAME: finished $SCRIPTNAME" |
|
1694 html "</TABLE><BR>" |
|
1695 cd ${QADIR} |
|
1696 . common/cleanup.sh |
|
1697 } |
|
1698 |
|
1699 ################## main ################################################# |
|
1700 |
|
1701 cert_init |
|
1702 cert_all_CA |
|
1703 cert_extended_ssl |
|
1704 cert_ssl |
|
1705 cert_smime_client |
|
1706 if [ -z "$NSS_TEST_DISABLE_FIPS" ]; then |
|
1707 cert_fips |
|
1708 fi |
|
1709 cert_eccurves |
|
1710 cert_extensions |
|
1711 cert_san_and_generic_extensions |
|
1712 cert_test_password |
|
1713 cert_test_distrust |
|
1714 cert_test_ocspresp |
|
1715 |
|
1716 if [ -z "$NSS_TEST_DISABLE_CRL" ] ; then |
|
1717 cert_crl_ssl |
|
1718 else |
|
1719 echo "$SCRIPTNAME: Skipping CRL Tests" |
|
1720 fi |
|
1721 |
|
1722 if [ -n "$DO_DIST_ST" -a "$DO_DIST_ST" = "TRUE" ] ; then |
|
1723 cert_stresscerts |
|
1724 fi |
|
1725 |
|
1726 cert_iopr_setup |
|
1727 |
|
1728 cert_cleanup |