michael@0: #!/bin/bash michael@0: # michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: ######################################################################## michael@0: # michael@0: # mozilla/security/nss/tests/pkits/pkits.sh michael@0: # michael@0: # Script to test the NIST PKITS tests michael@0: # michael@0: # needs to work on all Unix and Windows platforms michael@0: # michael@0: # tests implemented: michael@0: # vfychain michael@0: # michael@0: # special NOTES michael@0: # --------------- michael@0: # NIST PKITS data needs to be downloaded from michael@0: # http://csrc.nist.gov/pki/testing/x509paths.html michael@0: # Environment variable PKITS_DATA needs to be set to the directory michael@0: # where this data is downloaded, or test data needs to be copied under michael@0: # the mozilla source tree in mozilla/PKITS_DATA michael@0: ######################################################################## michael@0: michael@0: ############################## pkits_init ############################## michael@0: # local shell function to initialize this script michael@0: ######################################################################## michael@0: pkits_init() michael@0: { michael@0: SCRIPTNAME=pkits.sh michael@0: michael@0: if [ -z "${CLEANUP}" ] ; then michael@0: CLEANUP="${SCRIPTNAME}" michael@0: fi michael@0: michael@0: if [ -z "${INIT_SOURCED}" -o "${INIT_SOURCED}" != "TRUE" ]; then michael@0: cd ../common michael@0: . ./init.sh michael@0: fi michael@0: michael@0: if [ -z "${PKITS_DATA}" ]; then michael@0: echo "${SCRIPTNAME}: PKITS data directory not defined, skipping." michael@0: exit 0 michael@0: fi michael@0: michael@0: if [ ! -d "${PKITS_DATA}" ]; then michael@0: echo "${SCRIPTNAME}: PKITS data directory ${PKITS_DATA} doesn't exist, skipping." michael@0: exit 0 michael@0: fi michael@0: michael@0: PKITSDIR=${HOSTDIR}/pkits michael@0: michael@0: COPYDIR=${PKITSDIR}/copydir michael@0: michael@0: mkdir -p ${PKITSDIR} michael@0: mkdir -p ${COPYDIR} michael@0: mkdir -p ${PKITSDIR}/html michael@0: michael@0: certs=${PKITS_DATA}/certs michael@0: crls=${PKITS_DATA}/crls michael@0: michael@0: cd ${PKITSDIR} michael@0: michael@0: PKITSdb=${PKITSDIR}/PKITSdb michael@0: PKITSbkp=${PKITSDIR}/PKITSbkp michael@0: michael@0: PKITS_LOG=${PKITSDIR}/pkits.log #getting its own logfile michael@0: pkits_log "Start of logfile $PKITS_LOG" michael@0: michael@0: if [ ! -d "${PKITSdb}" ]; then michael@0: mkdir -p ${PKITSdb} michael@0: else michael@0: pkits_log "$SCRIPTNAME: WARNING - ${PKITSdb} exists" michael@0: fi michael@0: michael@0: if [ ! -d "${PKITSbkp}" ]; then michael@0: mkdir -p ${PKITSbkp} michael@0: else michael@0: pkits_log "$SCRIPTNAME: WARNING - ${PKITSbkp} exists" michael@0: fi michael@0: michael@0: echo "HOSTDIR" $HOSTDIR michael@0: echo "PKITSDIR" $PKITSDIR michael@0: echo "PKITSdb" $PKITSdb michael@0: echo "PKITSbkp" $PKITSbkp michael@0: echo "PKITS_DATA" $PKITS_DATA michael@0: echo "certs" $certs michael@0: echo "crls" $crls michael@0: michael@0: echo nss > ${PKITSdb}/pw michael@0: ${BINDIR}/certutil -N -d ${PKITSdb} -f ${PKITSdb}/pw michael@0: michael@0: ${BINDIR}/certutil -A -n TrustAnchorRootCertificate -t "C,C,C" -i \ michael@0: $certs/TrustAnchorRootCertificate.crt -d $PKITSdb michael@0: if [ -z "$NSS_NO_PKITS_CRLS" ]; then michael@0: ${BINDIR}/crlutil -I -i $crls/TrustAnchorRootCRL.crl -d ${PKITSdb} -f ${PKITSdb}/pw michael@0: else michael@0: html "

NO CRLs are being used.

" michael@0: pkits_log "NO CRLs are being used." michael@0: fi michael@0: michael@0: cp ${PKITSdb}/* ${PKITSbkp} michael@0: michael@0: KNOWN_BUG= michael@0: } michael@0: michael@0: ############################### pkits_log ############################## michael@0: # write to pkits.log file michael@0: ######################################################################## michael@0: pkits_log() michael@0: { michael@0: echo "$SCRIPTNAME $*" michael@0: echo $* >> ${PKITS_LOG} michael@0: } michael@0: michael@0: restore_db() michael@0: { michael@0: echo "Restore DB" michael@0: rm ${PKITSdb}/* michael@0: cp ${PKITSbkp}/* ${PKITSdb} michael@0: } michael@0: michael@0: log_banner() michael@0: { michael@0: echo "" michael@0: echo "--------------------------------------------------------------------" michael@0: echo "Test case ${VFY_ACTION}" michael@0: echo "" michael@0: } michael@0: michael@0: start_table() michael@0: { michael@0: html "" michael@0: html "" michael@0: echo "" michael@0: echo "***************************************************************" michael@0: echo "$*" michael@0: echo "***************************************************************" michael@0: } michael@0: michael@0: break_table() michael@0: { michael@0: html "
$*
Test CaseResult

" michael@0: start_table "$@" michael@0: } michael@0: michael@0: ################################ pkits ################################# michael@0: # local shell function for positive testcases, calls vfychain, writes michael@0: # action and options to stdout, sets variable RET and writes results to michael@0: # the html file results michael@0: ######################################################################## michael@0: pkits() michael@0: { michael@0: echo "vfychain -d $PKITSdb -u 4 $*" michael@0: ${BINDIR}/vfychain -d $PKITSdb -u 4 $* > ${PKITSDIR}/cmdout.txt 2>&1 michael@0: RET=$? michael@0: CNT=`grep -c ERROR ${PKITSDIR}/cmdout.txt` michael@0: RET=`expr ${RET} + ${CNT}` michael@0: cat ${PKITSDIR}/cmdout.txt michael@0: michael@0: if [ "$RET" -ne 0 ]; then michael@0: html_failed "${VFY_ACTION} ($RET) " michael@0: pkits_log "ERROR: ${VFY_ACTION} failed $RET" michael@0: else michael@0: html_passed "${VFY_ACTION}" michael@0: pkits_log "SUCCESS: ${VFY_ACTION} returned as expected $RET" michael@0: fi michael@0: michael@0: return $RET michael@0: } michael@0: michael@0: ################################ pkitsn ################################# michael@0: # local shell function for negative testcases, calls vfychain, writes michael@0: # action and options to stdout, sets variable RET and writes results to michael@0: # the html file results michael@0: ######################################################################## michael@0: pkitsn() michael@0: { michael@0: echo "vfychain -d $PKITSdb -u 4 $*" michael@0: ${BINDIR}/vfychain -d $PKITSdb -u 4 $* > ${PKITSDIR}/cmdout.txt 2>&1 michael@0: RET=$? michael@0: CNT=`grep -c ERROR ${PKITSDIR}/cmdout.txt` michael@0: RET=`expr ${RET} + ${CNT}` michael@0: cat ${PKITSDIR}/cmdout.txt michael@0: michael@0: if [ "$RET" -eq 0 ]; then michael@0: html_failed "${VFY_ACTION} ($RET) " michael@0: pkits_log "ERROR: ${VFY_ACTION} failed $RET" michael@0: else michael@0: html_passed "${VFY_ACTION} ($RET) " michael@0: pkits_log "SUCCESS: ${VFY_ACTION} returned as expected $RET" michael@0: fi michael@0: return $RET michael@0: } michael@0: michael@0: ################################ crlImport ############################# michael@0: # local shell function to import a CRL, calls crlutil -I -i, writes michael@0: # action and options to stdout michael@0: ######################################################################## michael@0: crlImport() michael@0: { michael@0: if [ -z "$NSS_NO_PKITS_CRLS" ]; then michael@0: echo "crlutil -d $PKITSdb -I -f ${PKITSdb}/pw -i $crls/$*" michael@0: ${BINDIR}/crlutil -d ${PKITSdb} -I -f ${PKITSdb}/pw -i $crls/$* > ${PKITSDIR}/cmdout.txt 2>&1 michael@0: RET=$? michael@0: cat ${PKITSDIR}/cmdout.txt michael@0: michael@0: if [ "$RET" -ne 0 ]; then michael@0: html_failed "${VFY_ACTION} ($RET) " michael@0: pkits_log "ERROR: ${VFY_ACTION} failed $RET" michael@0: fi michael@0: fi michael@0: } michael@0: michael@0: ################################ crlImportn ############################# michael@0: # local shell function to import an incorrect CRL, calls crlutil -I -i, michael@0: # writes action and options to stdout michael@0: ######################################################################## michael@0: crlImportn() michael@0: { michael@0: RET=0 michael@0: if [ -z "$NSS_NO_PKITS_CRLS" ]; then michael@0: echo "crlutil -d $PKITSdb -I -f ${PKITSdb}/pw -i $crls/$*" michael@0: ${BINDIR}/crlutil -d ${PKITSdb} -I -f ${PKITSdb}/pw -i $crls/$* > ${PKITSDIR}/cmdout.txt 2>&1 michael@0: RET=$? michael@0: cat ${PKITSDIR}/cmdout.txt michael@0: michael@0: if [ "$RET" -eq 0 ]; then michael@0: html_failed "${VFY_ACTION} ($RET) " michael@0: pkits_log "ERROR: ${VFY_ACTION} failed $RET" michael@0: else michael@0: html_passed "${VFY_ACTION} ($RET) " michael@0: pkits_log "SUCCESS: ${VFY_ACTION} returned as expected $RET" michael@0: fi michael@0: fi michael@0: return $RET michael@0: } michael@0: michael@0: ################################ certImport ############################# michael@0: # local shell function to import a Cert, calls certutil -A, writes michael@0: # action and options to stdout michael@0: ######################################################################## michael@0: certImport() michael@0: { michael@0: echo "certutil -d $PKITSdb -A -t \",,\" -n $* -i $certs/$*.crt" michael@0: ${BINDIR}/certutil -d $PKITSdb -A -t ",," -n $* -i $certs/$*.crt > ${PKITSDIR}/cmdout.txt 2>&1 michael@0: RET=$? michael@0: cat ${PKITSDIR}/cmdout.txt michael@0: michael@0: if [ "$RET" -ne 0 ]; then michael@0: html_failed "${VFY_ACTION} ($RET) " michael@0: pkits_log "ERROR: ${VFY_ACTION} failed $RET" michael@0: fi michael@0: } michael@0: michael@0: ################################ certImportn ############################# michael@0: # local shell function to import an incorrect Cert, calls certutil -A, michael@0: # writes action and options to stdout michael@0: ######################################################################## michael@0: certImportn() michael@0: { michael@0: RET=0 michael@0: if [ -z "$NSS_NO_PKITS_CRLS" ]; then michael@0: echo "certutil -d $PKITSdb -A -t \",,\" -n $* -i $certs/$*.crt" michael@0: ${BINDIR}/certutil -d $PKITSdb -A -t ",," -n $* -i $certs/$*.crt > ${PKITSDIR}/cmdout.txt 2>&1 michael@0: RET=$? michael@0: cat ${PKITSDIR}/cmdout.txt michael@0: michael@0: if [ "$RET" -eq 0 ]; then michael@0: html_failed "${VFY_ACTION} ($RET) " michael@0: pkits_log "ERROR: ${VFY_ACTION} failed $RET" michael@0: else michael@0: html_passed "${VFY_ACTION} ($RET) " michael@0: pkits_log "SUCCESS: ${VFY_ACTION} returned as expected $RET" michael@0: fi michael@0: fi michael@0: } michael@0: michael@0: ############################## pkits_tests_bySection ################### michael@0: # running the various PKITS tests michael@0: ######################################################################## michael@0: pkits_SignatureVerification() michael@0: { michael@0: start_table "NIST PKITS Section 4.1: Signature Verification" michael@0: michael@0: VFY_ACTION="Valid Signatures Test1"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidCertificatePathTest1EE.crt $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid CA Signature Test2"; log_banner michael@0: certImport BadSignedCACert michael@0: crlImport BadSignedCACRL.crl michael@0: pkitsn $certs/InvalidCASignatureTest2EE.crt \ michael@0: $certs/BadSignedCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid EE Signature Test3"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/InvalidEESignatureTest3EE.crt $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DSA Signatures Test4"; log_banner michael@0: certImport DSACACert michael@0: crlImport DSACACRL.crl michael@0: pkits $certs/ValidDSASignaturesTest4EE.crt $certs/DSACACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DSA Parameter Inheritance Test5"; log_banner michael@0: certImport DSACACert michael@0: crlImport DSACACRL.crl michael@0: certImport DSAParametersInheritedCACert michael@0: crlImport DSAParametersInheritedCACRL.crl michael@0: pkits $certs/ValidDSAParameterInheritanceTest5EE.crt \ michael@0: $certs/DSAParametersInheritedCACert.crt \ michael@0: $certs/DSACACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DSA Signature Test6"; log_banner michael@0: certImport DSACACert michael@0: crlImport DSACACRL.crl michael@0: pkitsn $certs/InvalidDSASignatureTest6EE.crt $certs/DSACACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: pkits_ValidityPeriods() michael@0: { michael@0: break_table "NIST PKITS Section 4.2: Validity Periods" michael@0: michael@0: VFY_ACTION="Invalid CA notBefore Date Test1"; log_banner michael@0: certImport BadnotBeforeDateCACert michael@0: crlImportn BadnotBeforeDateCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidCAnotBeforeDateTest1EE.crt \ michael@0: $certs/BadnotBeforeDateCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid EE notBefore Date Test2"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/InvalidEEnotBeforeDateTest2EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid pre2000 UTC notBefore Date Test3"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/Validpre2000UTCnotBeforeDateTest3EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid GeneralizedTime notBefore Date Test4"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidGeneralizedTimenotBeforeDateTest4EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid CA notAfter Date Test5"; log_banner michael@0: certImport BadnotAfterDateCACert michael@0: crlImportn BadnotAfterDateCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidCAnotAfterDateTest5EE.crt \ michael@0: $certs/BadnotAfterDateCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid EE notAfter Date Test6"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/InvalidEEnotAfterDateTest6EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pre2000 UTC EE notAfter Date Test7"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/Invalidpre2000UTCEEnotAfterDateTest7EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="ValidGeneralizedTime notAfter Date Test8"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidGeneralizedTimenotAfterDateTest8EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: pkits_NameChaining() michael@0: { michael@0: break_table "NIST PKITS Section 4.3: Verifying NameChaining" michael@0: michael@0: VFY_ACTION="Invalid Name Chaining EE Test1"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/InvalidNameChainingTest1EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Name Chaining Order Test2"; log_banner michael@0: certImport NameOrderingCACert michael@0: crlImport NameOrderCACRL.crl michael@0: pkitsn $certs/InvalidNameChainingOrderTest2EE.crt \ michael@0: $certs/NameOrderingCACert.crt michael@0: restore_db michael@0: michael@0: ### bug 216123 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Name Chaining Whitespace Test3"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidNameChainingWhitespaceTest3EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Name Chaining Whitespace Test4"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidNameChainingWhitespaceTest4EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Name Chaining Capitalization Test5"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidNameChainingCapitalizationTest5EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: fi michael@0: michael@0: VFY_ACTION="Valid Name Chaining UIDs Test6"; log_banner michael@0: certImport UIDCACert michael@0: crlImport UIDCACRL.crl michael@0: pkits $certs/ValidNameUIDsTest6EE.crt $certs/UIDCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RFC3280 Mandatory Attribute Types Test7"; log_banner michael@0: certImport RFC3280MandatoryAttributeTypesCACert michael@0: crlImport RFC3280MandatoryAttributeTypesCACRL.crl michael@0: pkits $certs/ValidRFC3280MandatoryAttributeTypesTest7EE.crt \ michael@0: $certs/RFC3280MandatoryAttributeTypesCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RFC3280 Optional Attribute Types Test8"; log_banner michael@0: certImport RFC3280OptionalAttributeTypesCACert michael@0: crlImport RFC3280OptionalAttributeTypesCACRL.crl michael@0: pkits $certs/ValidRFC3280OptionalAttributeTypesTest8EE.crt \ michael@0: $certs/RFC3280OptionalAttributeTypesCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid UTF8String Encoded Names Test9"; log_banner michael@0: certImport UTF8StringEncodedNamesCACert michael@0: crlImport UTF8StringEncodedNamesCACRL.crl michael@0: pkits $certs/ValidUTF8StringEncodedNamesTest9EE.crt \ michael@0: $certs/UTF8StringEncodedNamesCACert.crt michael@0: restore_db michael@0: michael@0: ### bug 216123 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Rollover from PrintableString to UTF8String Test10"; log_banner michael@0: certImport RolloverfromPrintableStringtoUTF8StringCACert michael@0: crlImport RolloverfromPrintableStringtoUTF8StringCACRL.crl michael@0: pkits $certs/ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt \ michael@0: $certs/RolloverfromPrintableStringtoUTF8StringCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid UTF8String case Insensitive Match Test11"; log_banner michael@0: certImport UTF8StringCaseInsensitiveMatchCACert michael@0: crlImport UTF8StringCaseInsensitiveMatchCACRL.crl michael@0: pkits $certs/ValidUTF8StringCaseInsensitiveMatchTest11EE.crt \ michael@0: $certs/UTF8StringCaseInsensitiveMatchCACert.crt michael@0: restore_db michael@0: fi michael@0: } michael@0: michael@0: pkits_BasicCertRevocation() michael@0: { michael@0: break_table "NIST PKITS Section 4.4: Basic Certificate Revocation Tests" michael@0: michael@0: ### bug 414556 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Missing CRL Test1"; log_banner michael@0: pkitsn $certs/InvalidMissingCRLTest1EE.crt \ michael@0: $certs/NoCRLCACert.crt michael@0: fi michael@0: michael@0: VFY_ACTION="Invalid Revoked CA Test2"; log_banner michael@0: certImport RevokedsubCACert michael@0: crlImport RevokedsubCACRL.crl michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/InvalidRevokedCATest2EE.crt \ michael@0: $certs/RevokedsubCACert.crt $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Revoked EE Test3"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkitsn $certs/InvalidRevokedEETest3EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Bad CRL Signature Test4"; log_banner michael@0: certImport BadCRLSignatureCACert michael@0: crlImportn BadCRLSignatureCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidBadCRLSignatureTest4EE.crt \ michael@0: $certs/BadCRLSignatureCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Bad CRL Issuer Name Test5"; log_banner michael@0: certImport BadCRLIssuerNameCACert michael@0: crlImportn BadCRLIssuerNameCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidBadCRLIssuerNameTest5EE.crt \ michael@0: $certs/BadCRLIssuerNameCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: ### bug 414556 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Invalid Wrong CRL Test6"; log_banner michael@0: certImport WrongCRLCACert michael@0: crlImport WrongCRLCACRL.crl michael@0: pkitsn $certs/InvalidWrongCRLTest6EE.crt \ michael@0: $certs/WrongCRLCACert.crt michael@0: restore_db michael@0: fi michael@0: michael@0: VFY_ACTION="Valid Two CRLs Test7"; log_banner michael@0: certImport TwoCRLsCACert michael@0: crlImport TwoCRLsCAGoodCRL.crl michael@0: crlImportn TwoCRLsCABadCRL.crl michael@0: pkits $certs/ValidTwoCRLsTest7EE.crt \ michael@0: $certs/TwoCRLsCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Unknown CRL Entry Extension Test8"; log_banner michael@0: certImport UnknownCRLEntryExtensionCACert michael@0: crlImportn UnknownCRLEntryExtensionCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidUnknownCRLEntryExtensionTest8EE.crt \ michael@0: $certs/UnknownCRLEntryExtensionCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Unknown CRL Extension Test9"; log_banner michael@0: certImport UnknownCRLExtensionCACert michael@0: crlImportn UnknownCRLExtensionCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidUnknownCRLExtensionTest9EE.crt \ michael@0: $certs/UnknownCRLExtensionCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Unknown CRL Extension Test10"; log_banner michael@0: certImport UnknownCRLExtensionCACert michael@0: crlImportn UnknownCRLExtensionCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidUnknownCRLExtensionTest10EE.crt \ michael@0: $certs/UnknownCRLExtensionCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: ### bug 414563 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Invalid Old CRL nextUpdate Test11"; log_banner michael@0: certImport OldCRLnextUpdateCACert michael@0: crlImport OldCRLnextUpdateCACRL.crl michael@0: pkitsn $certs/InvalidOldCRLnextUpdateTest11EE.crt \ michael@0: $certs/OldCRLnextUpdateCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pre2000 CRL nextUpdate Test12"; log_banner michael@0: certImport pre2000CRLnextUpdateCACert michael@0: crlImport pre2000CRLnextUpdateCACRL.crl michael@0: pkitsn $certs/Invalidpre2000CRLnextUpdateTest12EE.crt \ michael@0: $certs/pre2000CRLnextUpdateCACert.crt michael@0: restore_db michael@0: fi michael@0: michael@0: VFY_ACTION="Valid GeneralizedTime CRL nextUpdate Test13"; log_banner michael@0: certImport GeneralizedTimeCRLnextUpdateCACert michael@0: crlImport GeneralizedTimeCRLnextUpdateCACRL.crl michael@0: pkits $certs/ValidGeneralizedTimeCRLnextUpdateTest13EE.crt \ michael@0: $certs/GeneralizedTimeCRLnextUpdateCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Negative Serial Number Test14"; log_banner michael@0: certImport NegativeSerialNumberCACert michael@0: crlImport NegativeSerialNumberCACRL.crl michael@0: pkits $certs/ValidNegativeSerialNumberTest14EE.crt \ michael@0: $certs/NegativeSerialNumberCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Negative Serial Number Test15"; log_banner michael@0: certImport NegativeSerialNumberCACert michael@0: crlImport NegativeSerialNumberCACRL.crl michael@0: pkitsn $certs/InvalidNegativeSerialNumberTest15EE.crt \ michael@0: $certs/NegativeSerialNumberCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Long Serial Number Test16"; log_banner michael@0: certImport LongSerialNumberCACert michael@0: crlImport LongSerialNumberCACRL.crl michael@0: pkits $certs/ValidLongSerialNumberTest16EE.crt \ michael@0: $certs/LongSerialNumberCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Long Serial Number Test17"; log_banner michael@0: certImport LongSerialNumberCACert michael@0: crlImport LongSerialNumberCACRL.crl michael@0: pkits $certs/ValidLongSerialNumberTest17EE.crt \ michael@0: $certs/LongSerialNumberCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Long Serial Number Test18"; log_banner michael@0: certImport LongSerialNumberCACert michael@0: crlImport LongSerialNumberCACRL.crl michael@0: pkitsn $certs/InvalidLongSerialNumberTest18EE.crt \ michael@0: $certs/LongSerialNumberCACert.crt michael@0: restore_db michael@0: michael@0: ### bug 232737 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Separate Certificate and CRL Keys Test19"; log_banner michael@0: certImport SeparateCertificateandCRLKeysCertificateSigningCACert michael@0: certImport SeparateCertificateandCRLKeysCRLSigningCert michael@0: crlImport SeparateCertificateandCRLKeysCRL.crl michael@0: pkits $certs/ValidSeparateCertificateandCRLKeysTest19EE.crt \ michael@0: $certs/SeparateCertificateandCRLKeysCRLSigningCert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Separate Certificate and CRL Keys Test20"; log_banner michael@0: certImport SeparateCertificateandCRLKeysCertificateSigningCACert michael@0: certImport SeparateCertificateandCRLKeysCRLSigningCert michael@0: crlImport SeparateCertificateandCRLKeysCRL.crl michael@0: pkits $certs/InvalidSeparateCertificateandCRLKeysTest20EE.crt \ michael@0: $certs/SeparateCertificateandCRLKeysCRLSigningCert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Separate Certificate and CRL Keys Test21"; log_banner michael@0: certImport SeparateCertificateandCRLKeysCA2CertificateSigningCACert michael@0: certImport SeparateCertificateandCRLKeysCA2CRLSigningCert michael@0: crlImport SeparateCertificateandCRLKeysCA2CRL.crl michael@0: pkits $certs/InvalidSeparateCertificateandCRLKeysTest21EE.crt \ michael@0: $certs/SeparateCertificateandCRLKeysCA2CRLSigningCert.crt michael@0: restore_db michael@0: fi michael@0: } michael@0: michael@0: pkits_PathVerificWithSelfIssuedCerts() michael@0: { michael@0: break_table "NIST PKITS Section 4.5: Self-Issued Certificates" michael@0: michael@0: ### bug 232737 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Basic Self-Issued Old With New Test1"; log_banner michael@0: certImport BasicSelfIssuedNewKeyCACert michael@0: crlImport BasicSelfIssuedNewKeyCACRL.crl michael@0: pkits $certs/ValidBasicSelfIssuedOldWithNewTest1EE.crt \ michael@0: $certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt \ michael@0: $certs/BasicSelfIssuedNewKeyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Basic Self-Issued Old With New Test2"; log_banner michael@0: certImport BasicSelfIssuedNewKeyCACert michael@0: crlImport BasicSelfIssuedNewKeyCACRL.crl michael@0: pkitsn $certs/InvalidBasicSelfIssuedOldWithNewTest2EE.crt \ michael@0: $certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt \ michael@0: $certs/BasicSelfIssuedNewKeyCACert.crt michael@0: restore_db michael@0: fi michael@0: michael@0: ### bugs 321755 & 418769 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Basic Self-Issued New With Old Test3"; log_banner michael@0: certImport BasicSelfIssuedOldKeyCACert michael@0: crlImport BasicSelfIssuedOldKeyCACRL.crl michael@0: pkits $certs/ValidBasicSelfIssuedNewWithOldTest3EE.crt \ michael@0: $certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt \ michael@0: $certs/BasicSelfIssuedOldKeyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Basic Self-Issued New With Old Test4"; log_banner michael@0: certImport BasicSelfIssuedOldKeyCACert michael@0: crlImport BasicSelfIssuedOldKeyCACRL.crl michael@0: pkits $certs/ValidBasicSelfIssuedNewWithOldTest4EE.crt \ michael@0: $certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt \ michael@0: $certs/BasicSelfIssuedOldKeyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Basic Self-Issued New With Old Test5"; log_banner michael@0: certImport BasicSelfIssuedOldKeyCACert michael@0: crlImport BasicSelfIssuedOldKeyCACRL.crl michael@0: pkitsn $certs/InvalidBasicSelfIssuedNewWithOldTest5EE.crt \ michael@0: $certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt \ michael@0: $certs/BasicSelfIssuedOldKeyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Basic Self-Issued CRL Signing Key Test6"; log_banner michael@0: certImport BasicSelfIssuedCRLSigningKeyCACert michael@0: crlImport BasicSelfIssuedOldKeyCACRL.crl michael@0: pkits $certs/ValidBasicSelfIssuedCRLSigningKeyTest6EE.crt \ michael@0: $certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt \ michael@0: $certs/BasicSelfIssuedCRLSigningKeyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Basic Self-Issued CRL Signing Key Test7"; log_banner michael@0: certImport BasicSelfIssuedCRLSigningKeyCACert michael@0: crlImport BasicSelfIssuedOldKeyCACRL.crl michael@0: pkitsn $certs/InvalidBasicSelfIssuedCRLSigningKeyTest7EE.crt \ michael@0: $certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt \ michael@0: $certs/BasicSelfIssuedCRLSigningKeyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Basic Self-Issued CRL Signing Key Test8"; log_banner michael@0: certImport BasicSelfIssuedCRLSigningKeyCACert michael@0: crlImport BasicSelfIssuedOldKeyCACRL.crl michael@0: pkitsn $certs/InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt \ michael@0: $certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt \ michael@0: $certs/BasicSelfIssuedCRLSigningKeyCACert.crt michael@0: restore_db michael@0: fi michael@0: } michael@0: michael@0: pkits_BasicConstraints() michael@0: { michael@0: break_table "NIST PKITS Section 4.6: Verifying Basic Constraints" michael@0: michael@0: VFY_ACTION="Invalid Missing basicConstraints Test1"; log_banner michael@0: certImport MissingbasicConstraintsCACert michael@0: crlImport MissingbasicConstraintsCACRL.crl michael@0: pkitsn $certs/InvalidMissingbasicConstraintsTest1EE.crt \ michael@0: $certs/MissingbasicConstraintsCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid cA False Test2"; log_banner michael@0: certImport basicConstraintsCriticalcAFalseCACert michael@0: crlImport basicConstraintsCriticalcAFalseCACRL.crl michael@0: pkitsn $certs/InvalidcAFalseTest2EE.crt \ michael@0: $certs/basicConstraintsCriticalcAFalseCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid cA False Test3"; log_banner michael@0: certImport basicConstraintsNotCriticalcAFalseCACert michael@0: crlImport basicConstraintsNotCriticalcAFalseCACRL.crl michael@0: pkitsn $certs/InvalidcAFalseTest3EE.crt \ michael@0: $certs/basicConstraintsNotCriticalcAFalseCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid basicConstraints Not Critical Test4"; log_banner michael@0: certImport basicConstraintsNotCriticalCACert michael@0: crlImport basicConstraintsNotCriticalCACRL.crl michael@0: pkits $certs/ValidbasicConstraintsNotCriticalTest4EE.crt \ michael@0: $certs/basicConstraintsNotCriticalCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pathLenConstraint Test5"; log_banner michael@0: certImport pathLenConstraint0CACert michael@0: crlImport pathLenConstraint0CACRL.crl michael@0: certImport pathLenConstraint0subCACert michael@0: crlImport pathLenConstraint0subCACRL.crl michael@0: pkitsn $certs/InvalidpathLenConstraintTest5EE.crt \ michael@0: $certs/pathLenConstraint0subCACert.crt \ michael@0: $certs/pathLenConstraint0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pathLenConstraint Test6"; log_banner michael@0: certImport pathLenConstraint0CACert michael@0: crlImport pathLenConstraint0CACRL.crl michael@0: certImport pathLenConstraint0subCACert michael@0: crlImport pathLenConstraint0subCACRL.crl michael@0: pkitsn $certs/InvalidpathLenConstraintTest6EE.crt \ michael@0: $certs/pathLenConstraint0subCACert.crt \ michael@0: $certs/pathLenConstraint0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid pathLenConstraint Test7"; log_banner michael@0: certImport pathLenConstraint0CACert michael@0: crlImport pathLenConstraint0CACRL.crl michael@0: pkits $certs/ValidpathLenConstraintTest7EE.crt \ michael@0: $certs/pathLenConstraint0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid pathLenConstraint test8"; log_banner michael@0: certImport pathLenConstraint0CACert michael@0: crlImport pathLenConstraint0CACRL.crl michael@0: pkits $certs/ValidpathLenConstraintTest8EE.crt \ michael@0: $certs/pathLenConstraint0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pathLenConstraint Test9"; log_banner michael@0: certImport pathLenConstraint6CACert michael@0: crlImport pathLenConstraint6CACRL.crl michael@0: certImport pathLenConstraint6subCA0Cert michael@0: crlImport pathLenConstraint6subCA0CRL.crl michael@0: certImport pathLenConstraint6subsubCA00Cert michael@0: crlImport pathLenConstraint6subsubCA00CRL.crl michael@0: pkitsn $certs/InvalidpathLenConstraintTest9EE.crt \ michael@0: $certs/pathLenConstraint6subsubCA00Cert.crt \ michael@0: $certs/pathLenConstraint6subCA0Cert.crt \ michael@0: $certs/pathLenConstraint6CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pathLenConstraint Test10"; log_banner michael@0: certImport pathLenConstraint6CACert michael@0: crlImport pathLenConstraint6CACRL.crl michael@0: certImport pathLenConstraint6subCA0Cert michael@0: crlImport pathLenConstraint6subCA0CRL.crl michael@0: certImport pathLenConstraint6subsubCA00Cert michael@0: crlImport pathLenConstraint6subsubCA00CRL.crl michael@0: pkitsn $certs/InvalidpathLenConstraintTest10EE.crt \ michael@0: $certs/pathLenConstraint6subsubCA00Cert.crt \ michael@0: $certs/pathLenConstraint6subCA0Cert.crt \ michael@0: $certs/pathLenConstraint6CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pathLenConstraint Test11"; log_banner michael@0: certImport pathLenConstraint6CACert michael@0: crlImport pathLenConstraint6CACRL.crl michael@0: certImport pathLenConstraint6subCA1Cert michael@0: crlImport pathLenConstraint6subCA1CRL.crl michael@0: certImport pathLenConstraint6subsubCA11Cert michael@0: crlImport pathLenConstraint6subsubCA11CRL.crl michael@0: certImport pathLenConstraint6subsubsubCA11XCert michael@0: crlImport pathLenConstraint6subsubsubCA11XCRL.crl michael@0: pkitsn $certs/InvalidpathLenConstraintTest11EE.crt \ michael@0: $certs/pathLenConstraint6subsubsubCA11XCert.crt \ michael@0: $certs/pathLenConstraint6subsubCA11Cert.crt \ michael@0: $certs/pathLenConstraint6subCA1Cert.crt \ michael@0: $certs/pathLenConstraint6CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid pathLenConstraint test12"; log_banner michael@0: certImport pathLenConstraint6CACert michael@0: crlImport pathLenConstraint6CACRL.crl michael@0: certImport pathLenConstraint6subCA1Cert michael@0: crlImport pathLenConstraint6subCA1CRL.crl michael@0: certImport pathLenConstraint6subsubCA11Cert michael@0: crlImport pathLenConstraint6subsubCA11CRL.crl michael@0: certImport pathLenConstraint6subsubsubCA11XCert michael@0: crlImport pathLenConstraint6subsubsubCA11XCRL.crl michael@0: pkitsn $certs/InvalidpathLenConstraintTest12EE.crt \ michael@0: $certs/pathLenConstraint6subsubsubCA11XCert.crt \ michael@0: $certs/pathLenConstraint6subsubCA11Cert.crt \ michael@0: $certs/pathLenConstraint6subCA1Cert.crt \ michael@0: $certs/pathLenConstraint6CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid pathLenConstraint Test13"; log_banner michael@0: certImport pathLenConstraint6CACert michael@0: crlImport pathLenConstraint6CACRL.crl michael@0: certImport pathLenConstraint6subCA4Cert michael@0: crlImport pathLenConstraint6subCA4CRL.crl michael@0: certImport pathLenConstraint6subsubCA41Cert michael@0: crlImport pathLenConstraint6subsubCA41CRL.crl michael@0: certImport pathLenConstraint6subsubsubCA41XCert michael@0: crlImport pathLenConstraint6subsubsubCA41XCRL.crl michael@0: pkits $certs/ValidpathLenConstraintTest13EE.crt \ michael@0: $certs/pathLenConstraint6subsubsubCA41XCert.crt \ michael@0: $certs/pathLenConstraint6subsubCA41Cert.crt \ michael@0: $certs/pathLenConstraint6subCA4Cert.crt \ michael@0: $certs/pathLenConstraint6CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid pathLenConstraint Test14"; log_banner michael@0: certImport pathLenConstraint6CACert michael@0: crlImport pathLenConstraint6CACRL.crl michael@0: certImport pathLenConstraint6subCA4Cert michael@0: crlImport pathLenConstraint6subCA4CRL.crl michael@0: certImport pathLenConstraint6subsubCA41Cert michael@0: crlImport pathLenConstraint6subsubCA41CRL.crl michael@0: certImport pathLenConstraint6subsubsubCA41XCert michael@0: crlImport pathLenConstraint6subsubsubCA41XCRL.crl michael@0: pkits $certs/ValidpathLenConstraintTest14EE.crt \ michael@0: $certs/pathLenConstraint6subsubsubCA41XCert.crt \ michael@0: $certs/pathLenConstraint6subsubCA41Cert.crt \ michael@0: $certs/pathLenConstraint6subCA4Cert.crt \ michael@0: $certs/pathLenConstraint6CACert.crt michael@0: restore_db michael@0: michael@0: ### bug 232737 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Self-Issued pathLenConstraint Test15"; log_banner michael@0: certImport pathLenConstraint0CACert michael@0: crlImport pathLenConstraint0CACRL.crl michael@0: pkits $certs/ValidSelfIssuedpathLenConstraintTest15EE.crt \ michael@0: $certs/pathLenConstraint0SelfIssuedCACert.crt \ michael@0: $certs/pathLenConstraint0CACert.crt michael@0: restore_db michael@0: fi michael@0: michael@0: VFY_ACTION="Invalid Self-Issued pathLenConstraint Test16"; log_banner michael@0: certImport pathLenConstraint0CACert michael@0: crlImport pathLenConstraint0CACRL.crl michael@0: certImport pathLenConstraint0subCA2Cert michael@0: crlImport pathLenConstraint0subCA2CRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedpathLenConstraintTest16EE.crt \ michael@0: $certs/pathLenConstraint0subCA2Cert.crt \ michael@0: $certs/pathLenConstraint0SelfIssuedCACert.crt \ michael@0: $certs/pathLenConstraint0CACert.crt michael@0: restore_db michael@0: michael@0: ### bug 232737 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Self-Issued pathLenConstraint Test17"; log_banner michael@0: certImport pathLenConstraint1CACert michael@0: crlImport pathLenConstraint1CACRL.crl michael@0: certImport pathLenConstraint1subCACert michael@0: crlImport pathLenConstraint1subCACRL.crl michael@0: pkits $certs/ValidSelfIssuedpathLenConstraintTest17EE.crt \ michael@0: $certs/pathLenConstraint1SelfIssuedsubCACert.crt \ michael@0: $certs/pathLenConstraint1subCACert.crt \ michael@0: $certs/pathLenConstraint1SelfIssuedCACert.crt \ michael@0: $certs/pathLenConstraint1CACert.crt michael@0: restore_db michael@0: fi michael@0: } michael@0: michael@0: pkits_KeyUsage() michael@0: { michael@0: break_table "NIST PKITS Section 4.7: Key Usage" michael@0: michael@0: VFY_ACTION="Invalid keyUsage Critical keyCertSign False Test1"; log_banner michael@0: certImport keyUsageCriticalkeyCertSignFalseCACert michael@0: crlImport keyUsageCriticalkeyCertSignFalseCACRL.crl michael@0: pkitsn $certs/InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt \ michael@0: $certs/keyUsageCriticalkeyCertSignFalseCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid keyUsage Not Critical keyCertSign False Test2"; log_banner michael@0: certImport keyUsageNotCriticalkeyCertSignFalseCACert michael@0: crlImport keyUsageNotCriticalkeyCertSignFalseCACRL.crl michael@0: pkitsn $certs/InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt \ michael@0: $certs/keyUsageNotCriticalkeyCertSignFalseCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid keyUsage Not Critical Test3"; log_banner michael@0: certImport keyUsageNotCriticalCACert michael@0: crlImport keyUsageNotCriticalCACRL.crl michael@0: pkits $certs/ValidkeyUsageNotCriticalTest3EE.crt \ michael@0: $certs/keyUsageNotCriticalCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid keyUsage Critical cRLSign False Test4"; log_banner michael@0: certImport keyUsageCriticalcRLSignFalseCACert michael@0: crlImportn keyUsageCriticalcRLSignFalseCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt \ michael@0: $certs/keyUsageCriticalcRLSignFalseCACert.crt michael@0: fi michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid keyUsage Not Critical cRLSign False Test5"; log_banner michael@0: certImport keyUsageNotCriticalcRLSignFalseCACert michael@0: crlImportn keyUsageNotCriticalcRLSignFalseCACRL.crl michael@0: if [ $RET -eq 0 ] ; then michael@0: pkitsn $certs/InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt \ michael@0: $certs/keyUsageNotCriticalcRLSignFalseCACert.crt michael@0: fi michael@0: restore_db michael@0: } michael@0: michael@0: pkits_CertificatePolicies() michael@0: { michael@0: break_table "NIST PKITS Section 4.8: Certificate Policies" michael@0: michael@0: VFY_ACTION="All Certificates Same Policy Test1"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/ValidCertificatePathTest1EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="All Certificates No Policies Test2"; log_banner michael@0: certImport NoPoliciesCACert michael@0: crlImport NoPoliciesCACRL.crl michael@0: pkits $certs/AllCertificatesNoPoliciesTest2EE.crt \ michael@0: $certs/NoPoliciesCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test3"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: certImport PoliciesP2subCACert michael@0: crlImport PoliciesP2subCACRL.crl michael@0: pkits $certs/DifferentPoliciesTest3EE.crt \ michael@0: $certs/PoliciesP2subCACert.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test4"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: certImport GoodsubCACert michael@0: crlImport GoodsubCACRL.crl michael@0: pkits $certs/DifferentPoliciesTest4EE.crt \ michael@0: $certs/GoodsubCACert.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test5"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: certImport PoliciesP2subCA2Cert michael@0: crlImport PoliciesP2subCA2CRL.crl michael@0: pkits $certs/DifferentPoliciesTest5EE.crt \ michael@0: $certs/PoliciesP2subCA2Cert.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Overlapping Policies Test6"; log_banner michael@0: certImport PoliciesP1234CACert michael@0: crlImport PoliciesP1234CACRL.crl michael@0: certImport PoliciesP1234subCAP123Cert michael@0: crlImport PoliciesP1234subCAP123CRL.crl michael@0: certImport PoliciesP1234subsubCAP123P12Cert michael@0: crlImport PoliciesP1234subsubCAP123P12CRL.crl michael@0: pkits $certs/OverlappingPoliciesTest6EE.crt \ michael@0: $certs/PoliciesP1234subsubCAP123P12Cert.crt \ michael@0: $certs/PoliciesP1234subCAP123Cert.crt \ michael@0: $certs/PoliciesP1234CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test7"; log_banner michael@0: certImport PoliciesP123CACert michael@0: crlImport PoliciesP123CACRL.crl michael@0: certImport PoliciesP123subCAP12Cert michael@0: crlImport PoliciesP123subCAP12CRL.crl michael@0: certImport PoliciesP123subsubCAP12P1Cert michael@0: crlImport PoliciesP123subsubCAP12P1CRL.crl michael@0: pkits $certs/DifferentPoliciesTest7EE.crt \ michael@0: $certs/PoliciesP123subsubCAP12P1Cert.crt \ michael@0: $certs/PoliciesP123subCAP12Cert.crt \ michael@0: $certs/PoliciesP123CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test8"; log_banner michael@0: certImport PoliciesP12CACert michael@0: crlImport PoliciesP12CACRL.crl michael@0: certImport PoliciesP12subCAP1Cert michael@0: crlImport PoliciesP12subCAP1CRL.crl michael@0: certImport PoliciesP12subsubCAP1P2Cert michael@0: crlImport PoliciesP12subsubCAP1P2CRL.crl michael@0: pkits $certs/DifferentPoliciesTest8EE.crt \ michael@0: $certs/PoliciesP123subsubCAP12P1Cert.crt \ michael@0: $certs/PoliciesP12subCAP1Cert.crt \ michael@0: $certs/PoliciesP12CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test9"; log_banner michael@0: certImport PoliciesP123CACert michael@0: crlImport PoliciesP123CACRL.crl michael@0: certImport PoliciesP123subCAP12Cert michael@0: crlImport PoliciesP123subCAP12CRL.crl michael@0: certImport PoliciesP123subsubCAP12P2Cert michael@0: crlImport PoliciesP123subsubCAP2P2CRL.crl michael@0: certImport PoliciesP123subsubsubCAP12P2P1Cert michael@0: crlImport PoliciesP123subsubsubCAP12P2P1CRL.crl michael@0: pkits $certs/DifferentPoliciesTest9EE.crt \ michael@0: $certs/PoliciesP123subsubsubCAP12P2P1Cert.crt \ michael@0: $certs/PoliciesP123subsubCAP12P1Cert.crt \ michael@0: $certs/PoliciesP12subCAP1Cert.crt \ michael@0: $certs/PoliciesP12CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="All Certificates Same Policies Test10"; log_banner michael@0: certImport PoliciesP12CACert michael@0: crlImport PoliciesP12CACRL.crl michael@0: pkits $certs/AllCertificatesSamePoliciesTest10EE.crt \ michael@0: $certs/NoPoliciesCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="All Certificates AnyPolicy Test11"; log_banner michael@0: certImport anyPolicyCACert michael@0: crlImport anyPolicyCACRL.crl michael@0: pkits $certs/AllCertificatesanyPolicyTest11EE.crt \ michael@0: $certs/anyPolicyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Different Policies Test12"; log_banner michael@0: certImport PoliciesP3CACert michael@0: crlImport PoliciesP3CACRL.crl michael@0: pkits $certs/DifferentPoliciesTest12EE.crt \ michael@0: $certs/PoliciesP3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="All Certificates Same Policies Test13"; log_banner michael@0: certImport PoliciesP123CACert michael@0: crlImport PoliciesP123CACRL.crl michael@0: pkits $certs/AllCertificatesSamePoliciesTest13EE.crt \ michael@0: $certs/PoliciesP123CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="AnyPolicy Test14"; log_banner michael@0: certImport anyPolicyCACert michael@0: crlImport anyPolicyCACRL.crl michael@0: pkits $certs/AnyPolicyTest14EE.crt \ michael@0: $certs/anyPolicyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="User Notice Qualifier Test15"; log_banner michael@0: pkits $certs/UserNoticeQualifierTest15EE.crt michael@0: michael@0: VFY_ACTION="User Notice Qualifier Test16"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/UserNoticeQualifierTest16EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: michael@0: VFY_ACTION="User Notice Qualifier Test17"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/UserNoticeQualifierTest17EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="User Notice Qualifier Test18"; log_banner michael@0: certImport PoliciesP12CACert michael@0: crlImport PoliciesP12CACRL.crl michael@0: pkits $certs/UserNoticeQualifierTest18EE.crt \ michael@0: $certs/PoliciesP12CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="User Notice Qualifier Test19"; log_banner michael@0: pkits $certs/UserNoticeQualifierTest19EE.crt michael@0: michael@0: VFY_ACTION="CPS Pointer Qualifier Test20"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: pkits $certs/CPSPointerQualifierTest20EE.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: pkits_RequireExplicitPolicy() michael@0: { michael@0: break_table "NIST PKITS Section 4.9: Require Explicit Policy" michael@0: michael@0: VFY_ACTION="Valid RequireExplicitPolicy Test1"; log_banner michael@0: certImportn requireExplicitPolicy10CACert michael@0: crlImportn requireExplicitPolicy10CACRL.crl michael@0: certImport requireExplicitPolicy10subCACert michael@0: crlImport requireExplicitPolicy10subCACRL.crl michael@0: certImport requireExplicitPolicy10subsubCACert michael@0: crlImport requireExplicitPolicy10subsubCACRL.crl michael@0: certImport requireExplicitPolicy10subsubsubCACert michael@0: crlImport requireExplicitPolicy10subsubsubCACRL.crl michael@0: pkits $certs/ValidrequireExplicitPolicyTest1EE.crt \ michael@0: $certs/requireExplicitPolicy10subsubsubCACert.crt \ michael@0: $certs/requireExplicitPolicy10subsubCACert.crt \ michael@0: $certs/requireExplicitPolicy10subCACert.crt \ michael@0: $certs/requireExplicitPolicy10CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RequireExplicitPolicy Test2"; log_banner michael@0: certImportn requireExplicitPolicy5CACert michael@0: crlImportn requireExplicitPolicy5CACRL.crl michael@0: certImport requireExplicitPolicy5subCACert michael@0: crlImport requireExplicitPolicy5subCACRL.crl michael@0: certImport requireExplicitPolicy5subsubCACert michael@0: crlImport requireExplicitPolicy5subsubCACRL.crl michael@0: certImport requireExplicitPolicy5subsubsubCACert michael@0: crlImport requireExplicitPolicy5subsubsubCACRL.crl michael@0: pkits $certs/ValidrequireExplicitPolicyTest2EE.crt \ michael@0: $certs/requireExplicitPolicy5subsubsubCACert.crt \ michael@0: $certs/requireExplicitPolicy5subsubCACert.crt \ michael@0: $certs/requireExplicitPolicy5subCACert.crt \ michael@0: $certs/requireExplicitPolicy5CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid RequireExplicitPolicy Test3"; log_banner michael@0: certImportn requireExplicitPolicy4CACert michael@0: crlImportn requireExplicitPolicy4CACRL.crl michael@0: certImport requireExplicitPolicy4subCACert michael@0: crlImport requireExplicitPolicy4subCACRL.crl michael@0: certImport requireExplicitPolicy4subsubCACert michael@0: crlImport requireExplicitPolicy4subsubCACRL.crl michael@0: certImport requireExplicitPolicy4subsubsubCACert michael@0: crlImport requireExplicitPolicy4subsubsubCACRL.crl michael@0: pkitsn $certs/InvalidrequireExplicitPolicyTest3EE.crt \ michael@0: $certs/requireExplicitPolicy4subsubsubCACert.crt \ michael@0: $certs/requireExplicitPolicy4subsubCACert.crt \ michael@0: $certs/requireExplicitPolicy4subCACert.crt \ michael@0: $certs/requireExplicitPolicy4CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RequireExplicitPolicy Test4"; log_banner michael@0: certImportn requireExplicitPolicy0CACert michael@0: crlImportn requireExplicitPolicy0CACRL.crl michael@0: certImport requireExplicitPolicy0subCACert michael@0: crlImport requireExplicitPolicy0subCACRL.crl michael@0: certImport requireExplicitPolicy0subsubCACert michael@0: crlImport requireExplicitPolicy0subsubCACRL.crl michael@0: certImport requireExplicitPolicy0subsubsubCACert michael@0: crlImport requireExplicitPolicy0subsubsubCACRL.crl michael@0: pkits $certs/ValidrequireExplicitPolicyTest4EE.crt \ michael@0: $certs/requireExplicitPolicy0subsubsubCACert.crt \ michael@0: $certs/requireExplicitPolicy0subsubCACert.crt \ michael@0: $certs/requireExplicitPolicy0subCACert.crt \ michael@0: $certs/requireExplicitPolicy0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid RequireExplicitPolicy Test5"; log_banner michael@0: certImportn requireExplicitPolicy7CACert michael@0: crlImportn requireExplicitPolicy7CACRL.crl michael@0: certImportn requireExplicitPolicy7subCARE2Cert michael@0: crlImportn requireExplicitPolicy7subCARE2CRL.crl michael@0: certImportn requireExplicitPolicy7subsubCARE2RE4Cert michael@0: crlImportn requireExplicitPolicy7subsubCARE2RE4CRL.crl michael@0: certImport requireExplicitPolicy7subsubsubCARE2RE4Cert michael@0: crlImport requireExplicitPolicy7subsubsubCARE2RE4CRL.crl michael@0: pkitsn $certs/InvalidrequireExplicitPolicyTest5EE.crt \ michael@0: $certs/requireExplicitPolicy7subsubsubCARE2RE4Cert.crt \ michael@0: $certs/requireExplicitPolicy7subsubCARE2RE4Cert.crt \ michael@0: $certs/requireExplicitPolicy7subCARE2Cert.crt \ michael@0: $certs/requireExplicitPolicy7CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Self-Issued RequireExplicitPolicy Test6"; log_banner michael@0: certImportn requireExplicitPolicy2CACert michael@0: crlImportn requireExplicitPolicy2CACRL.crl michael@0: pkits $certs/ValidSelfIssuedrequireExplicitPolicyTest6EE.crt \ michael@0: $certs/requireExplicitPolicy2SelfIssuedCACert.crt \ michael@0: $certs/requireExplicitPolicy2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued RequireExplicitPolicy Test7"; log_banner michael@0: certImportn requireExplicitPolicy2CACert michael@0: crlImportn requireExplicitPolicy2CACRL.crl michael@0: certImport requireExplicitPolicy2subCACert michael@0: crlImport requireExplicitPolicy2subCACRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedrequireExplicitPolicyTest7EE.crt \ michael@0: $certs/requireExplicitPolicy2subCACert.crt \ michael@0: $certs/requireExplicitPolicy2SelfIssuedCACert.crt \ michael@0: $certs/requireExplicitPolicy2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued RequireExplicitPolicy Test8"; log_banner michael@0: certImportn requireExplicitPolicy2CACert michael@0: crlImportn requireExplicitPolicy2CACRL.crl michael@0: certImport requireExplicitPolicy2subCACert michael@0: crlImport requireExplicitPolicy2subCACRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedrequireExplicitPolicyTest8EE.crt \ michael@0: $certs/requireExplicitPolicy2SelfIssuedsubCACert.crt \ michael@0: $certs/requireExplicitPolicy2subCACert.crt \ michael@0: $certs/requireExplicitPolicy2SelfIssuedCACert.crt \ michael@0: $certs/requireExplicitPolicy2CACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: pkits_PolicyMappings() michael@0: { michael@0: break_table "NIST PKITS Section 4.10: Policy Mappings" michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test1"; log_banner michael@0: certImportn Mapping1to2CACert michael@0: crlImportn Mapping1to2CACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest1EE.crt \ michael@0: $certs/Mapping1to2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Policy Mapping Test2"; log_banner michael@0: certImportn Mapping1to2CACert michael@0: crlImportn Mapping1to2CACRL.crl michael@0: pkitsn $certs/InvalidPolicyMappingTest2EE.crt \ michael@0: $certs/Mapping1to2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test3"; log_banner michael@0: certImportn P12Mapping1to3CACert michael@0: crlImportn P12Mapping1to3CACRL.crl michael@0: certImportn P12Mapping1to3subCACert michael@0: crlImportn P12Mapping1to3subCACRL.crl michael@0: certImportn P12Mapping1to3subsubCACert michael@0: crlImportn P12Mapping1to3subsubCACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest3EE.crt \ michael@0: $certs/P12Mapping1to3subsubCACert.crt \ michael@0: $certs/P12Mapping1to3subCACert.crt \ michael@0: $certs/P12Mapping1to3CA.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Policy Mapping Test4"; log_banner michael@0: certImportn P12Mapping1to3CACert michael@0: crlImportn P12Mapping1to3CACRL.crl michael@0: certImportn P12Mapping1to3subCACert michael@0: crlImportn P12Mapping1to3subCACRL.crl michael@0: certImportn P12Mapping1to3subsubCACert michael@0: crlImportn P12Mapping1to3subsubCACRL.crl michael@0: pkitsn $certs/InvalidPolicyMappingTest4EE.crt \ michael@0: $certs/P12Mapping1to3subsubCACert.crt \ michael@0: $certs/P12Mapping1to3subCACert.crt \ michael@0: $certs/P12Mapping1to3CA.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test5"; log_banner michael@0: certImportn P1Mapping1to234CACert michael@0: crlImportn P1Mapping1to234CACRL.crl michael@0: certImportn P1Mapping1to234subCACert michael@0: crlImportn P1Mapping1to234subCACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest5EE.crt \ michael@0: $certs/P1Mapping1to234subCACert.crt \ michael@0: $certs/P1Mapping1to234CA.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test6"; log_banner michael@0: certImportn P1Mapping1to234CACert michael@0: crlImportn P1Mapping1to234CACRL.crl michael@0: certImportn P1Mapping1to234subCACert michael@0: crlImportn P1Mapping1to234subCACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest6EE.crt \ michael@0: $certs/P1Mapping1to234subCACert.crt \ michael@0: $certs/P1Mapping1to234CA.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Mapping from anyPolicy Test7"; log_banner michael@0: certImportn MappingFromanyPolicyCACert michael@0: crlImportn MappingFromanyPolicyCACRL.crl michael@0: pkitsn $certs/InvalidMappingFromanyPolicyTest7EE.crt \ michael@0: $certs/MappingFromanyPolicyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Mapping to anyPolicy Test8"; log_banner michael@0: certImportn MappingToanyPolicyCACert michael@0: crlImportn MappingToanyPolicyCACRL.crl michael@0: pkitsn $certs/InvalidMappingToanyPolicyTest8EE.crt \ michael@0: $certs/MappingToanyPolicyCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test9"; log_banner michael@0: certImport PanyPolicyMapping1to2CACert michael@0: crlImport PanyPolicyMapping1to2CACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest9EE.crt \ michael@0: $certs/PanyPolicyMapping1to2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Policy Mapping Test10"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: certImportn GoodsubCAPanyPolicyMapping1to2CACert michael@0: crlImportn GoodsubCAPanyPolicyMapping1to2CACRL.crl michael@0: pkitsn $certs/InvalidPolicyMappingTest10EE.crt \ michael@0: $certs/GoodsubCAPanyPolicyMapping1to2CACert.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test11"; log_banner michael@0: certImport GoodCACert michael@0: crlImport GoodCACRL.crl michael@0: certImportn GoodsubCAPanyPolicyMapping1to2CACert michael@0: crlImportn GoodsubCAPanyPolicyMapping1to2CACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest11EE.crt \ michael@0: $certs/GoodsubCAPanyPolicyMapping1to2CACert.crt \ michael@0: $certs/GoodCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test12"; log_banner michael@0: certImportn P12Mapping1to3CACert michael@0: crlImportn P12Mapping1to3CACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest12EE.crt \ michael@0: $certs/P12Mapping1to3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test13"; log_banner michael@0: certImportn P1anyPolicyMapping1to2CACert michael@0: crlImportn P1anyPolicyMapping1to2CACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest13EE.crt \ michael@0: $certs/P1anyPolicyMapping1to2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Policy Mapping Test14"; log_banner michael@0: certImportn P1anyPolicyMapping1to2CACert michael@0: crlImportn P1anyPolicyMapping1to2CACRL.crl michael@0: pkits $certs/ValidPolicyMappingTest14EE.crt \ michael@0: $certs/P1anyPolicyMapping1to2CACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: michael@0: pkits_InhibitPolicyMapping() michael@0: { michael@0: break_table "NIST PKITS Section 4.11: Inhibit Policy Mapping" michael@0: michael@0: VFY_ACTION="Invalid inhibitPolicyMapping Test1"; log_banner michael@0: certImportn inhibitPolicyMapping0CACert michael@0: crlImportn inhibitPolicyMapping0CACRL.crl michael@0: certImportn inhibitPolicyMapping0subCACert michael@0: crlImportn inhibitPolicyMapping0subCACRL.crl michael@0: pkitsn $certs/InvalidinhibitPolicyMappingTest1EE.crt \ michael@0: $certs/inhibitPolicyMapping0CACert.crt \ michael@0: $certs/inhibitPolicyMapping0subCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid inhibitPolicyMapping Test2"; log_banner michael@0: certImportn inhibitPolicyMapping1P12CACert michael@0: crlImportn inhibitPolicyMapping1P12CACRL.crl michael@0: certImportn inhibitPolicyMapping1P12subCACert michael@0: crlImportn inhibitPolicyMapping1P12subCACRL.crl michael@0: pkits $certs/ValidinhibitPolicyMappingTest2EE.crt \ michael@0: $certs/inhibitPolicyMapping1P12CACert.crt \ michael@0: $certs/inhibitPolicyMapping1P12subCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid inhibitPolicyMapping Test3"; log_banner michael@0: certImportn inhibitPolicyMapping1P12CACert michael@0: crlImportn inhibitPolicyMapping1P12CACRL.crl michael@0: certImportn inhibitPolicyMapping1P12subCACert michael@0: crlImportn inhibitPolicyMapping1P12subCACRL.crl michael@0: certImportn inhibitPolicyMapping1P12subsubCACert michael@0: crlImportn inhibitPolicyMapping1P12subsubCACRL.crl michael@0: pkitsn $certs/InvalidinhibitPolicyMappingTest3EE.crt \ michael@0: $certs/inhibitPolicyMapping1P12subsubCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P12subCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P12CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid inhibitPolicyMapping Test4"; log_banner michael@0: certImportn inhibitPolicyMapping1P12CACert michael@0: crlImportn inhibitPolicyMapping1P12CACRL.crl michael@0: certImportn inhibitPolicyMapping1P12subCACert michael@0: crlImportn inhibitPolicyMapping1P12subCACRL.crl michael@0: certImportn inhibitPolicyMapping1P12subsubCACert michael@0: crlImportn inhibitPolicyMapping1P12subsubCACRL.crl michael@0: pkits $certs/ValidinhibitPolicyMappingTest4EE.crt \ michael@0: $certs/inhibitPolicyMapping1P12CACert.crt \ michael@0: $certs/inhibitPolicyMapping1P12subCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid inhibitPolicyMapping Test5"; log_banner michael@0: certImportn inhibitPolicyMapping5CACert michael@0: crlImportn inhibitPolicyMapping5CACRL.crl michael@0: certImportn inhibitPolicyMapping5subCACert michael@0: crlImportn inhibitPolicyMapping5subCACRL.crl michael@0: certImport inhibitPolicyMapping5subsubCACert michael@0: crlImport inhibitPolicyMapping5subsubCACRL.crl michael@0: pkitsn $certs/InvalidinhibitPolicyMappingTest5EE.crt \ michael@0: $certs/inhibitPolicyMapping5subsubCACert.crt \ michael@0: $certs/inhibitPolicyMapping5subCACert.crt \ michael@0: $certs/inhibitPolicyMapping5CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid inhibitPolicyMapping Test6"; log_banner michael@0: certImportn inhibitPolicyMapping1P12CACert michael@0: crlImportn inhibitPolicyMapping1P12CACRL.crl michael@0: certImportn inhibitPolicyMapping1P12subCAIPM5Cert michael@0: crlImportn inhibitPolicyMapping1P12subCAIPM5CRL.crl michael@0: certImport inhibitPolicyMapping1P12subsubCAIPM5Cert michael@0: crlImportn inhibitPolicyMapping1P12subsubCAIPM5CRL.crl michael@0: pkitsn $certs/InvalidinhibitPolicyMappingTest6EE.crt \ michael@0: $certs/inhibitPolicyMapping1P12subsubCAIPM5Cert.crt \ michael@0: $certs/inhibitPolicyMapping1P12subCAIPM5Cert.crt \ michael@0: $certs/inhibitPolicyMapping1P12CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Self-Issued inhibitPolicyMapping Test7"; log_banner michael@0: certImportn inhibitPolicyMapping1P1CACert michael@0: crlImportn inhibitPolicyMapping1P1CACRL.crl michael@0: certImportn inhibitPolicyMapping1P1subCACert michael@0: crlImportn inhibitPolicyMapping1P1subCACRL.crl michael@0: pkits $certs/ValidSelfIssuedinhibitPolicyMappingTest7EE.crt \ michael@0: $certs/inhibitPolicyMapping1P1subCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued inhibitPolicyMapping Test8"; log_banner michael@0: certImportn inhibitPolicyMapping1P1CACert michael@0: crlImportn inhibitPolicyMapping1P1CACRL.crl michael@0: certImportn inhibitPolicyMapping1P1subCACert michael@0: crlImportn inhibitPolicyMapping1P1subCACRL.crl michael@0: certImport inhibitPolicyMapping1P1subsubCACert michael@0: crlImportn inhibitPolicyMapping1P1subsubCACRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedinhibitPolicyMappingTest8EE.crt \ michael@0: $certs/inhibitPolicyMapping1P1subsubCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1subCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued inhibitPolicyMapping Test9"; log_banner michael@0: certImportn inhibitPolicyMapping1P1CACert michael@0: crlImportn inhibitPolicyMapping1P1CACRL.crl michael@0: certImportn inhibitPolicyMapping1P1subCACert michael@0: crlImportn inhibitPolicyMapping1P1subCACRL.crl michael@0: certImportn inhibitPolicyMapping1P1subsubCACert michael@0: crlImportn inhibitPolicyMapping1P1subsubCACRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedinhibitPolicyMappingTest9EE.crt \ michael@0: $certs/inhibitPolicyMapping1P1subsubCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1subCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued inhibitPolicyMapping Test10"; log_banner michael@0: certImportn inhibitPolicyMapping1P1CACert michael@0: crlImportn inhibitPolicyMapping1P1CACRL.crl michael@0: certImportn inhibitPolicyMapping1P1subCACert michael@0: crlImportn inhibitPolicyMapping1P1subCACRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedinhibitPolicyMappingTest10EE.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1subCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued inhibitPolicyMapping Test11"; log_banner michael@0: certImportn inhibitPolicyMapping1P1CACert michael@0: crlImportn inhibitPolicyMapping1P1CACRL.crl michael@0: certImportn inhibitPolicyMapping1P1subCACert michael@0: crlImportn inhibitPolicyMapping1P1subCACRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedinhibitPolicyMappingTest11EE.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1subCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt \ michael@0: $certs/inhibitPolicyMapping1P1CACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: michael@0: pkits_InhibitAnyPolicy() michael@0: { michael@0: break_table "NIST PKITS Section 4.12: Inhibit Any Policy" michael@0: michael@0: VFY_ACTION="Invalid inhibitAnyPolicy Test1"; log_banner michael@0: certImportn inhibitAnyPolicy0CACert michael@0: crlImportn inhibitAnyPolicy0CACRL.crl michael@0: pkitsn $certs/InvalidinhibitAnyPolicyTest1EE.crt \ michael@0: $certs/inhibitAnyPolicy0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid inhibitAnyPolicy Test2"; log_banner michael@0: certImportn inhibitAnyPolicy0CACert michael@0: crlImportn inhibitAnyPolicy0CACRL.crl michael@0: pkits $certs/ValidinhibitAnyPolicyTest2EE.crt \ michael@0: $certs/inhibitAnyPolicy0CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="inhibitAnyPolicy Test3"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImport inhibitAnyPolicy1subCA1Cert michael@0: crlImport inhibitAnyPolicy1subCA1CRL.crl michael@0: pkits $certs/inhibitAnyPolicyTest3EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy1subCA1Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid inhibitAnyPolicy Test4"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImport inhibitAnyPolicy1subCA1Cert michael@0: crlImport inhibitAnyPolicy1subCA1CRL.crl michael@0: pkitsn $certs/InvalidinhibitAnyPolicyTest4EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy1subCA1Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid inhibitAnyPolicy Test5"; log_banner michael@0: certImportn inhibitAnyPolicy5CACert michael@0: crlImportn inhibitAnyPolicy5CACRL.crl michael@0: certImportn inhibitAnyPolicy5subCACert michael@0: crlImportn inhibitAnyPolicy5subCACRL.crl michael@0: certImport inhibitAnyPolicy5subsubCACert michael@0: crlImport inhibitAnyPolicy5subsubCACRL.crl michael@0: pkitsn $certs/InvalidinhibitAnyPolicyTest5EE.crt \ michael@0: $certs/inhibitAnyPolicy5CACert.crt \ michael@0: $certs/inhibitAnyPolicy5subCACert.crt \ michael@0: $certs/inhibitAnyPolicy5subsubCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid inhibitAnyPolicy Test6"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImportn inhibitAnyPolicy1subCAIAP5Cert michael@0: crlImportn inhibitAnyPolicy1subCAIAP5CRL.crl michael@0: pkitsn $certs/InvalidinhibitAnyPolicyTest5EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy5subCACert.crt \ michael@0: $certs/inhibitAnyPolicy5subsubCACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Self-Issued inhibitAnyPolicy Test7"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImport inhibitAnyPolicy1subCA2Cert michael@0: crlImport inhibitAnyPolicy1subCA2CRL.crl michael@0: pkits $certs/ValidSelfIssuedinhibitAnyPolicyTest7EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy1SelfIssuedCACert.crt \ michael@0: $certs/inhibitAnyPolicy1subCA2Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued inhibitAnyPolicy Test8"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImport inhibitAnyPolicy1subCA2Cert michael@0: crlImport inhibitAnyPolicy1subCA2CRL.crl michael@0: certImport inhibitAnyPolicy1subsubCA2Cert michael@0: crlImport inhibitAnyPolicy1subsubCA2CRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedinhibitAnyPolicyTest8EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy1SelfIssuedCACert.crt \ michael@0: $certs/inhibitAnyPolicy1subCA2Cert.crt \ michael@0: $certs/inhibitAnyPolicy1subsubCA2Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid Self-Issued inhibitAnyPolicy Test9"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImport inhibitAnyPolicy1subCA2Cert michael@0: crlImport inhibitAnyPolicy1subCA2CRL.crl michael@0: pkits $certs/ValidSelfIssuedinhibitAnyPolicyTest9EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy1SelfIssuedCACert.crt \ michael@0: $certs/inhibitAnyPolicy1subCA2Cert.crt \ michael@0: $certs/inhibitAnyPolicy1SelfIssuedsubCA2Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid Self-Issued inhibitAnyPolicy Test10"; log_banner michael@0: certImportn inhibitAnyPolicy1CACert michael@0: crlImportn inhibitAnyPolicy1CACRL.crl michael@0: certImport inhibitAnyPolicy1subCA2Cert michael@0: crlImport inhibitAnyPolicy1subCA2CRL.crl michael@0: pkitsn $certs/InvalidSelfIssuedinhibitAnyPolicyTest10EE.crt \ michael@0: $certs/inhibitAnyPolicy1CACert.crt \ michael@0: $certs/inhibitAnyPolicy1SelfIssuedCACert.crt \ michael@0: $certs/inhibitAnyPolicy1subCA2Cert.crt michael@0: restore_db michael@0: } michael@0: michael@0: michael@0: pkits_NameConstraints() michael@0: { michael@0: break_table "NIST PKITS Section 4.13: Name Constraints" michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test1"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest1EE.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test2"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest2EE.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test3"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest3EE.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test4"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest4EE.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test5"; log_banner michael@0: certImport nameConstraintsDN2CACert michael@0: crlImport nameConstraintsDN2CACRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest5EE.crt \ michael@0: $certs/nameConstraintsDN2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test6"; log_banner michael@0: certImport nameConstraintsDN3CACert michael@0: crlImport nameConstraintsDN3CACRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest6EE.crt \ michael@0: $certs/nameConstraintsDN3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test7"; log_banner michael@0: certImport nameConstraintsDN3CACert michael@0: crlImport nameConstraintsDN3CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest7EE.crt \ michael@0: $certs/nameConstraintsDN3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test8"; log_banner michael@0: certImport nameConstraintsDN4CACert michael@0: crlImport nameConstraintsDN4CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest8EE.crt \ michael@0: $certs/nameConstraintsDN4CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test9"; log_banner michael@0: certImport nameConstraintsDN4CACert michael@0: crlImport nameConstraintsDN4CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest9EE.crt \ michael@0: $certs/nameConstraintsDN4CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test10"; log_banner michael@0: certImport nameConstraintsDN5CACert michael@0: crlImport nameConstraintsDN5CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest10EE.crt \ michael@0: $certs/nameConstraintsDN5CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test11"; log_banner michael@0: certImport nameConstraintsDN5CACert michael@0: crlImport nameConstraintsDN5CACRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest11EE.crt \ michael@0: $certs/nameConstraintsDN5CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test12"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: certImport nameConstraintsDN1subCA1Cert michael@0: crlImport nameConstraintsDN1subCA1CRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest12EE.crt \ michael@0: $certs/nameConstraintsDN1subCA1Cert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test13"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: certImport nameConstraintsDN1subCA2Cert michael@0: crlImport nameConstraintsDN1subCA2CRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest13EE.crt \ michael@0: $certs/nameConstraintsDN1subCA2Cert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test14"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: certImport nameConstraintsDN1subCA2Cert michael@0: crlImport nameConstraintsDN1subCA2CRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest14EE.crt \ michael@0: $certs/nameConstraintsDN1subCA2Cert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test15"; log_banner michael@0: certImport nameConstraintsDN3CACert michael@0: crlImport nameConstraintsDN3CACRL.crl michael@0: certImport nameConstraintsDN3subCA1Cert michael@0: crlImport nameConstraintsDN3subCA1CRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest15EE.crt \ michael@0: $certs/nameConstraintsDN3subCA1Cert.crt \ michael@0: $certs/nameConstraintsDN3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test16"; log_banner michael@0: certImport nameConstraintsDN3CACert michael@0: crlImport nameConstraintsDN3CACRL.crl michael@0: certImport nameConstraintsDN3subCA1Cert michael@0: crlImport nameConstraintsDN3subCA1CRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest16EE.crt \ michael@0: $certs/nameConstraintsDN3subCA1Cert.crt \ michael@0: $certs/nameConstraintsDN3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN nameConstraints Test17"; log_banner michael@0: certImport nameConstraintsDN3CACert michael@0: crlImport nameConstraintsDN3CACRL.crl michael@0: certImport nameConstraintsDN3subCA2Cert michael@0: crlImport nameConstraintsDN3subCA2CRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest17EE.crt \ michael@0: $certs/nameConstraintsDN3subCA2Cert.crt \ michael@0: $certs/nameConstraintsDN3CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN nameConstraints Test18"; log_banner michael@0: certImport nameConstraintsDN3CACert michael@0: crlImport nameConstraintsDN3CACRL.crl michael@0: certImport nameConstraintsDN3subCA2Cert michael@0: crlImport nameConstraintsDN3subCA2CRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest18EE.crt \ michael@0: $certs/nameConstraintsDN3subCA2Cert.crt \ michael@0: $certs/nameConstraintsDN3CACert.crt michael@0: restore_db michael@0: michael@0: ### bug 232737 ### michael@0: if [ -n "${KNOWN_BUG}" ]; then michael@0: VFY_ACTION="Valid Self-Issued DN nameConstraints Test19"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: pkits $certs/ValidDNnameConstraintsTest19EE.crt \ michael@0: $certs/nameConstraintsDN1SelfIssuedCACert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: fi michael@0: michael@0: VFY_ACTION="Invalid Self-Issued DN nameConstraints Test20"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: pkitsn $certs/InvalidDNnameConstraintsTest20EE.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RFC822 nameConstraints Test21"; log_banner michael@0: certImport nameConstraintsRFC822CA1Cert michael@0: crlImport nameConstraintsRFC822CA1CRL.crl michael@0: pkits $certs/ValidRFC822nameConstraintsTest21EE.crt \ michael@0: $certs/nameConstraintsRFC822CA1Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid RFC822 nameConstraints Test22"; log_banner michael@0: certImport nameConstraintsRFC822CA1Cert michael@0: crlImport nameConstraintsRFC822CA1CRL.crl michael@0: pkitsn $certs/InvalidRFC822nameConstraintsTest22EE.crt \ michael@0: $certs/nameConstraintsRFC822CA1Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RFC822 nameConstraints Test23"; log_banner michael@0: certImport nameConstraintsRFC822CA2Cert michael@0: crlImport nameConstraintsRFC822CA2CRL.crl michael@0: pkits $certs/ValidRFC822nameConstraintsTest23EE.crt \ michael@0: $certs/nameConstraintsRFC822CA2Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid RFC822 nameConstraints Test24"; log_banner michael@0: certImport nameConstraintsRFC822CA2Cert michael@0: crlImport nameConstraintsRFC822CA2CRL.crl michael@0: pkitsn $certs/InvalidRFC822nameConstraintsTest24EE.crt \ michael@0: $certs/nameConstraintsRFC822CA2Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid RFC822 nameConstraints Test25"; log_banner michael@0: certImport nameConstraintsRFC822CA3Cert michael@0: crlImport nameConstraintsRFC822CA3CRL.crl michael@0: pkits $certs/ValidRFC822nameConstraintsTest25EE.crt \ michael@0: $certs/nameConstraintsRFC822CA3Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid RFC822 nameConstraints Test26"; log_banner michael@0: certImport nameConstraintsRFC822CA3Cert michael@0: crlImport nameConstraintsRFC822CA3CRL.crl michael@0: pkitsn $certs/InvalidRFC822nameConstraintsTest26EE.crt \ michael@0: $certs/nameConstraintsRFC822CA3Cert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DN and RFC822 nameConstraints Test27"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: certImport nameConstraintsDN1subCA3Cert michael@0: crlImport nameConstraintsDN1subCA3CRL.crl michael@0: pkits $certs/ValidDNandRFC822nameConstraintsTest27EE.crt \ michael@0: $certs/nameConstraintsDN1subCA3Cert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN and RFC822 nameConstraints Test28"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: certImport nameConstraintsDN1subCA3Cert michael@0: crlImport nameConstraintsDN1subCA3CRL.crl michael@0: pkitsn $certs/InvalidDNandRFC822nameConstraintsTest28EE.crt \ michael@0: $certs/nameConstraintsDN1subCA3Cert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DN and RFC822 nameConstraints Test29"; log_banner michael@0: certImport nameConstraintsDN1CACert michael@0: crlImport nameConstraintsDN1CACRL.crl michael@0: certImport nameConstraintsDN1subCA3Cert michael@0: crlImport nameConstraintsDN1subCA3CRL.crl michael@0: pkitsn $certs/InvalidDNandRFC822nameConstraintsTest29EE.crt \ michael@0: $certs/nameConstraintsDN1subCA3Cert.crt \ michael@0: $certs/nameConstraintsDN1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DNS nameConstraints Test30"; log_banner michael@0: certImport nameConstraintsDNS1CACert michael@0: crlImport nameConstraintsDNS1CACRL.crl michael@0: pkits $certs/ValidDNSnameConstraintsTest30EE.crt \ michael@0: $certs/nameConstraintsDNS1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DNS nameConstraints Test31"; log_banner michael@0: certImport nameConstraintsDNS1CACert michael@0: crlImport nameConstraintsDNS1CACRL.crl michael@0: pkitsn $certs/InvalidDNSnameConstraintsTest31EE.crt \ michael@0: $certs/nameConstraintsDNS1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid DNS nameConstraints Test32"; log_banner michael@0: certImport nameConstraintsDNS2CACert michael@0: crlImport nameConstraintsDNS2CACRL.crl michael@0: pkits $certs/ValidDNSnameConstraintsTest32EE.crt \ michael@0: $certs/nameConstraintsDNS2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DNS nameConstraints Test33"; log_banner michael@0: certImport nameConstraintsDNS2CACert michael@0: crlImport nameConstraintsDNS2CACRL.crl michael@0: pkitsn $certs/InvalidDNSnameConstraintsTest33EE.crt \ michael@0: $certs/nameConstraintsDNS2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid URI nameConstraints Test34"; log_banner michael@0: certImport nameConstraintsURI1CACert michael@0: crlImport nameConstraintsURI1CACRL.crl michael@0: pkits $certs/ValidURInameConstraintsTest34EE.crt \ michael@0: $certs/nameConstraintsURI1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid URI nameConstraints Test35"; log_banner michael@0: certImport nameConstraintsURI1CACert michael@0: crlImport nameConstraintsURI1CACRL.crl michael@0: pkitsn $certs/InvalidURInameConstraintsTest35EE.crt \ michael@0: $certs/nameConstraintsURI1CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Valid URI nameConstraints Test36"; log_banner michael@0: certImport nameConstraintsURI2CACert michael@0: crlImport nameConstraintsURI2CACRL.crl michael@0: pkits $certs/ValidURInameConstraintsTest36EE.crt \ michael@0: $certs/nameConstraintsURI2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid URI nameConstraints Test37"; log_banner michael@0: certImport nameConstraintsURI2CACert michael@0: crlImport nameConstraintsURI2CACRL.crl michael@0: pkitsn $certs/InvalidURInameConstraintsTest37EE.crt \ michael@0: $certs/nameConstraintsURI2CACert.crt michael@0: restore_db michael@0: michael@0: VFY_ACTION="Invalid DNS nameConstraints Test38"; log_banner michael@0: certImport nameConstraintsDNS1CACert michael@0: crlImport nameConstraintsDNS1CACRL.crl michael@0: pkitsn $certs/InvalidDNSnameConstraintsTest38EE.crt \ michael@0: $certs/nameConstraintsDNS1CACert.crt michael@0: restore_db michael@0: } michael@0: michael@0: pkits_PvtCertExtensions() michael@0: { michael@0: break_table "NIST PKITS Section 4.16: Private Certificate Extensions" michael@0: michael@0: VFY_ACTION="Valid Unknown Not Critical Certificate Extension Test1"; log_banner michael@0: pkits $certs/ValidUnknownNotCriticalCertificateExtensionTest1EE.crt michael@0: michael@0: VFY_ACTION="Invalid Unknown Critical Certificate Extension Test2"; log_banner michael@0: pkitsn $certs/InvalidUnknownCriticalCertificateExtensionTest2EE.crt michael@0: } michael@0: michael@0: ############################## pkits_cleanup ########################### michael@0: # local shell function to finish this script (no exit since it might be michael@0: # sourced) michael@0: ######################################################################## michael@0: pkits_cleanup() michael@0: { michael@0: html "
" michael@0: cd ${QADIR} michael@0: . common/cleanup.sh michael@0: } michael@0: michael@0: michael@0: ################################## main ################################ michael@0: pkits_init michael@0: pkits_SignatureVerification | tee -a $PKITS_LOG michael@0: pkits_ValidityPeriods | tee -a $PKITS_LOG michael@0: pkits_NameChaining | tee -a $PKITS_LOG michael@0: pkits_BasicCertRevocation | tee -a $PKITS_LOG michael@0: pkits_PathVerificWithSelfIssuedCerts | tee -a $PKITS_LOG michael@0: pkits_BasicConstraints | tee -a $PKITS_LOG michael@0: pkits_KeyUsage | tee -a $PKITS_LOG michael@0: if [ -n "$NSS_PKITS_POLICIES" ]; then michael@0: pkits_CertificatePolicies | tee -a $PKITS_LOG michael@0: pkits_RequireExplicitPolicy | tee -a $PKITS_LOG michael@0: pkits_PolicyMappings | tee -a $PKITS_LOG michael@0: pkits_InhibitPolicyMapping | tee -a $PKITS_LOG michael@0: pkits_InhibitAnyPolicy | tee -a $PKITS_LOG michael@0: fi michael@0: pkits_NameConstraints | tee -a $PKITS_LOG michael@0: pkits_PvtCertExtensions | tee -a $PKITS_LOG michael@0: pkits_cleanup michael@0: