Home | History | Annotate | Download | only in cert
      1 /*
      2  * Copyright (C) 2013 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package libcore.java.security.cert;
     18 
     19 import java.io.File;
     20 import java.io.FileInputStream;
     21 import java.io.IOException;
     22 import java.io.InputStream;
     23 import java.security.InvalidAlgorithmParameterException;
     24 import java.security.NoSuchAlgorithmException;
     25 import java.security.cert.CertPath;
     26 import java.security.cert.CertPathValidator;
     27 import java.security.cert.CertPathValidatorException;
     28 import java.security.cert.CertStore;
     29 import java.security.cert.CertificateFactory;
     30 import java.security.cert.CollectionCertStoreParameters;
     31 import java.security.cert.PKIXCertPathValidatorResult;
     32 import java.security.cert.PKIXParameters;
     33 import java.security.cert.TrustAnchor;
     34 import java.security.cert.X509CRL;
     35 import java.security.cert.X509Certificate;
     36 import java.util.ArrayList;
     37 import java.util.Arrays;
     38 import java.util.Collection;
     39 import java.util.HashSet;
     40 import java.util.Set;
     41 
     42 import junit.framework.TestCase;
     43 
     44 public class X509CertificateNistPkitsTest extends TestCase {
     45     public static final String RESOURCE_PACKAGE = "/tests/resources/";
     46 
     47     public static InputStream getStream(String name) {
     48         // If we have the resources packaged up in our jar file, get them that way.
     49         String path = RESOURCE_PACKAGE + name;
     50         InputStream result = X509CertificateNistPkitsTest.class.getResourceAsStream(path);
     51         if (result != null) {
     52             return result;
     53         }
     54         // Otherwise, if we're in an Android build tree, get the files directly.
     55         String ANDROID_BUILD_TOP = System.getenv("ANDROID_BUILD_TOP");
     56         if (ANDROID_BUILD_TOP != null) {
     57             File resource = new File(ANDROID_BUILD_TOP + "/external/nist-pkits/res" + path);
     58             if (resource.exists()) {
     59                 try {
     60                     return new FileInputStream(resource);
     61                 } catch (IOException ex) {
     62                     throw new IllegalArgumentException("Couldn't open: " + resource, ex);
     63                 }
     64             }
     65         }
     66         throw new IllegalArgumentException("No such resource: " + path);
     67     }
     68 
     69     private final X509Certificate getCertificate(CertificateFactory f, String name)
     70             throws Exception {
     71         final String fileName = "nist-pkits/certs/" + name;
     72         final InputStream is = getStream(fileName);
     73         assertNotNull("File does not exist: " + fileName, is);
     74         try {
     75             return (X509Certificate) f.generateCertificate(is);
     76         } finally {
     77             try {
     78                 is.close();
     79             } catch (IOException ignored) {
     80             }
     81         }
     82     }
     83 
     84     private final X509Certificate[] getCertificates(CertificateFactory f, String[] names)
     85             throws Exception {
     86         X509Certificate[] certs = new X509Certificate[names.length];
     87 
     88         for (int i = 0; i < names.length; i++) {
     89             certs[i] = getCertificate(f, names[i]);
     90         }
     91 
     92         return certs;
     93     }
     94 
     95     private final X509CRL getCRL(CertificateFactory f, String name) throws Exception {
     96         final String fileName = "nist-pkits/crls/" + name;
     97         final InputStream is = getStream(fileName);
     98         assertNotNull("File does not exist: " + fileName, is);
     99         try {
    100             return (X509CRL) f.generateCRL(is);
    101         } finally {
    102             try {
    103                 is.close();
    104             } catch (IOException ignored) {
    105             }
    106         }
    107     }
    108 
    109     private final X509CRL[] getCRLs(CertificateFactory f, String[] names) throws Exception {
    110         X509CRL[] crls = new X509CRL[names.length];
    111 
    112         for (int i = 0; i < names.length; i++) {
    113             crls[i] = getCRL(f, names[i]);
    114         }
    115 
    116         return crls;
    117     }
    118 
    119     private CertPath getTestPath(CertificateFactory f, String[] pathCerts) throws Exception {
    120         X509Certificate[] certs = getCertificates(f, pathCerts);
    121         return f.generateCertPath(Arrays.asList(certs));
    122     }
    123 
    124     private PKIXParameters getTestPathParams(CertificateFactory f, String trustedCAName,
    125             String[] pathCerts, String[] pathCRLs) throws Exception {
    126         X509Certificate[] certs = getCertificates(f, pathCerts);
    127         X509CRL[] crls = getCRLs(f, pathCRLs);
    128         X509Certificate trustedCA = getCertificate(f, trustedCAName);
    129 
    130         Collection<Object> certCollection = new ArrayList<Object>();
    131         certCollection.addAll(Arrays.asList(crls));
    132         certCollection.addAll(Arrays.asList(certs));
    133         certCollection.add(trustedCA);
    134         CollectionCertStoreParameters certStoreParams = new CollectionCertStoreParameters(
    135                 certCollection);
    136         CertStore certStore = CertStore.getInstance("Collection", certStoreParams);
    137 
    138         Set<TrustAnchor> anchors = new HashSet<TrustAnchor>();
    139         anchors.add(new TrustAnchor(trustedCA, null));
    140 
    141         PKIXParameters params = new PKIXParameters(anchors);
    142         params.addCertStore(certStore);
    143 
    144         return params;
    145     }
    146 
    147     private void assertInvalidPath(String trustAnchor, String[] certs, String[] crls)
    148             throws Exception, NoSuchAlgorithmException, InvalidAlgorithmParameterException {
    149         CertificateFactory f = CertificateFactory.getInstance("X.509");
    150 
    151         PKIXParameters params = getTestPathParams(f, trustAnchor, certs, crls);
    152         CertPath cp = getTestPath(f, certs);
    153         CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
    154 
    155         try {
    156             PKIXCertPathValidatorResult cpvResult = (PKIXCertPathValidatorResult) cpv.validate(cp,
    157                     params);
    158             fail();
    159         } catch (CertPathValidatorException expected) {
    160         }
    161     }
    162 
    163     private void assertValidPath(String trustAnchor, String[] certs, String[] crls)
    164             throws Exception, NoSuchAlgorithmException, CertPathValidatorException,
    165             InvalidAlgorithmParameterException {
    166         CertificateFactory f = CertificateFactory.getInstance("X.509");
    167 
    168         PKIXParameters params = getTestPathParams(f, trustAnchor, certs, crls);
    169         CertPath cp = getTestPath(f, certs);
    170         CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
    171 
    172         PKIXCertPathValidatorResult cpvResult = (PKIXCertPathValidatorResult) cpv.validate(cp,
    173                 params);
    174     }
    175 
    176     /* DO NOT MANUALLY EDIT -- BEGIN AUTOMATICALLY GENERATED TESTS */
    177     /** NIST PKITS test 4.1.1 */
    178     public void testSignatureVerification_ValidSignaturesTest1() throws Exception {
    179         String trustAnchor = "TrustAnchorRootCertificate.crt";
    180 
    181         String[] certs = {
    182                 "ValidCertificatePathTest1EE.crt",
    183                 "GoodCACert.crt",
    184         };
    185 
    186         String[] crls = {
    187                 "TrustAnchorRootCRL.crl",
    188                 "GoodCACRL.crl",
    189         };
    190 
    191         assertValidPath(trustAnchor, certs, crls);
    192     }
    193 
    194     /** NIST PKITS test 4.1.2 */
    195     public void testSignatureVerification_InvalidCASignatureTest2() throws Exception {
    196         String trustAnchor = "TrustAnchorRootCertificate.crt";
    197 
    198         String[] certs = {
    199                 "InvalidCASignatureTest2EE.crt",
    200                 "BadSignedCACert.crt",
    201         };
    202 
    203         String[] crls = {
    204                 "TrustAnchorRootCRL.crl",
    205                 "BadSignedCACRL.crl",
    206         };
    207 
    208         assertInvalidPath(trustAnchor, certs, crls);
    209     }
    210 
    211     /** NIST PKITS test 4.1.3 */
    212     public void testSignatureVerification_InvalidEESignatureTest3() throws Exception {
    213         String trustAnchor = "TrustAnchorRootCertificate.crt";
    214 
    215         String[] certs = {
    216                 "InvalidEESignatureTest3EE.crt",
    217                 "GoodCACert.crt",
    218         };
    219 
    220         String[] crls = {
    221                 "TrustAnchorRootCRL.crl",
    222                 "GoodCACRL.crl",
    223         };
    224 
    225         assertInvalidPath(trustAnchor, certs, crls);
    226     }
    227 
    228     /** NIST PKITS test 4.1.4 */
    229     public void testSignatureVerification_ValidDSASignaturesTest4() throws Exception {
    230         String trustAnchor = "TrustAnchorRootCertificate.crt";
    231 
    232         String[] certs = {
    233                 "ValidDSASignaturesTest4EE.crt",
    234                 "DSACACert.crt",
    235         };
    236 
    237         String[] crls = {
    238                 "TrustAnchorRootCRL.crl",
    239                 "DSACACRL.crl",
    240         };
    241 
    242         assertValidPath(trustAnchor, certs, crls);
    243     }
    244 
    245     /** NIST PKITS test 4.1.5 */
    246     public void testSignatureVerification_ValidDSAParameterInheritanceTest5() throws Exception {
    247         String trustAnchor = "TrustAnchorRootCertificate.crt";
    248 
    249         String[] certs = {
    250                 "ValidDSAParameterInheritanceTest5EE.crt",
    251                 "DSAParametersInheritedCACert.crt",
    252                 "DSACACert.crt",
    253         };
    254 
    255         String[] crls = {
    256                 "TrustAnchorRootCRL.crl",
    257                 "DSACACRL.crl",
    258                 "DSAParametersInheritedCACRL.crl",
    259         };
    260 
    261         assertValidPath(trustAnchor, certs, crls);
    262     }
    263 
    264     /** NIST PKITS test 4.1.6 */
    265     public void testSignatureVerification_InvalidDSASignatureTest6() throws Exception {
    266         String trustAnchor = "TrustAnchorRootCertificate.crt";
    267 
    268         String[] certs = {
    269                 "InvalidDSASignatureTest6EE.crt",
    270                 "DSACACert.crt",
    271         };
    272 
    273         String[] crls = {
    274                 "TrustAnchorRootCRL.crl",
    275                 "DSACACRL.crl",
    276         };
    277 
    278         assertInvalidPath(trustAnchor, certs, crls);
    279     }
    280 
    281     /** NIST PKITS test 4.2.1 */
    282     public void testValidityPeriods_InvalidCAnotBeforeDateTest1() throws Exception {
    283         String trustAnchor = "TrustAnchorRootCertificate.crt";
    284 
    285         String[] certs = {
    286                 "InvalidCAnotBeforeDateTest1EE.crt",
    287                 "BadnotBeforeDateCACert.crt",
    288         };
    289 
    290         String[] crls = {
    291                 "TrustAnchorRootCRL.crl",
    292                 "BadnotBeforeDateCACRL.crl",
    293         };
    294 
    295         assertInvalidPath(trustAnchor, certs, crls);
    296     }
    297 
    298     /** NIST PKITS test 4.2.2 */
    299     public void testValidityPeriods_InvalidEEnotBeforeDateTest2() throws Exception {
    300         String trustAnchor = "TrustAnchorRootCertificate.crt";
    301 
    302         String[] certs = {
    303                 "InvalidEEnotBeforeDateTest2EE.crt",
    304                 "GoodCACert.crt",
    305         };
    306 
    307         String[] crls = {
    308                 "TrustAnchorRootCRL.crl",
    309                 "GoodCACRL.crl",
    310         };
    311 
    312         assertInvalidPath(trustAnchor, certs, crls);
    313     }
    314 
    315     /** NIST PKITS test 4.2.3 */
    316     public void testValidityPeriods_Validpre2000UTCnotBeforeDateTest3() throws Exception {
    317         String trustAnchor = "TrustAnchorRootCertificate.crt";
    318 
    319         String[] certs = {
    320                 "Validpre2000UTCnotBeforeDateTest3EE.crt",
    321                 "GoodCACert.crt",
    322         };
    323 
    324         String[] crls = {
    325                 "TrustAnchorRootCRL.crl",
    326                 "GoodCACRL.crl",
    327         };
    328 
    329         assertValidPath(trustAnchor, certs, crls);
    330     }
    331 
    332     /** NIST PKITS test 4.2.4 */
    333     public void testValidityPeriods_ValidGeneralizedTimenotBeforeDateTest4() throws Exception {
    334         String trustAnchor = "TrustAnchorRootCertificate.crt";
    335 
    336         String[] certs = {
    337                 "ValidGeneralizedTimenotBeforeDateTest4EE.crt",
    338                 "GoodCACert.crt",
    339         };
    340 
    341         String[] crls = {
    342                 "TrustAnchorRootCRL.crl",
    343                 "GoodCACRL.crl",
    344         };
    345 
    346         assertValidPath(trustAnchor, certs, crls);
    347     }
    348 
    349     /** NIST PKITS test 4.2.5 */
    350     public void testValidityPeriods_InvalidCAnotAfterDateTest5() throws Exception {
    351         String trustAnchor = "TrustAnchorRootCertificate.crt";
    352 
    353         String[] certs = {
    354                 "InvalidCAnotAfterDateTest5EE.crt",
    355                 "BadnotAfterDateCACert.crt",
    356         };
    357 
    358         String[] crls = {
    359                 "TrustAnchorRootCRL.crl",
    360                 "BadnotAfterDateCACRL.crl",
    361         };
    362 
    363         assertInvalidPath(trustAnchor, certs, crls);
    364     }
    365 
    366     /** NIST PKITS test 4.2.6 */
    367     public void testValidityPeriods_InvalidEEnotAfterDateTest6() throws Exception {
    368         String trustAnchor = "TrustAnchorRootCertificate.crt";
    369 
    370         String[] certs = {
    371                 "InvalidEEnotAfterDateTest6EE.crt",
    372                 "GoodCACert.crt",
    373         };
    374 
    375         String[] crls = {
    376                 "TrustAnchorRootCRL.crl",
    377                 "GoodCACRL.crl",
    378         };
    379 
    380         assertInvalidPath(trustAnchor, certs, crls);
    381     }
    382 
    383     /** NIST PKITS test 4.2.7 */
    384     public void testValidityPeriods_Invalidpre2000UTCEEnotAfterDateTest7() throws Exception {
    385         String trustAnchor = "TrustAnchorRootCertificate.crt";
    386 
    387         String[] certs = {
    388                 "Invalidpre2000UTCEEnotAfterDateTest7EE.crt",
    389                 "GoodCACert.crt",
    390         };
    391 
    392         String[] crls = {
    393                 "TrustAnchorRootCRL.crl",
    394                 "GoodCACRL.crl",
    395         };
    396 
    397         assertInvalidPath(trustAnchor, certs, crls);
    398     }
    399 
    400     /** NIST PKITS test 4.2.8 */
    401     public void testValidityPeriods_ValidGeneralizedTimenotAfterDateTest8() throws Exception {
    402         String trustAnchor = "TrustAnchorRootCertificate.crt";
    403 
    404         String[] certs = {
    405                 "ValidGeneralizedTimenotAfterDateTest8EE.crt",
    406                 "GoodCACert.crt",
    407         };
    408 
    409         String[] crls = {
    410                 "TrustAnchorRootCRL.crl",
    411                 "GoodCACRL.crl",
    412         };
    413 
    414         assertValidPath(trustAnchor, certs, crls);
    415     }
    416 
    417     /** NIST PKITS test 4.3.1 */
    418     public void testVerifyingNameChaining_InvalidNameChainingEETest1() throws Exception {
    419         String trustAnchor = "TrustAnchorRootCertificate.crt";
    420 
    421         String[] certs = {
    422                 "InvalidNameChainingTest1EE.crt",
    423                 "GoodCACert.crt",
    424         };
    425 
    426         String[] crls = {
    427                 "TrustAnchorRootCRL.crl",
    428                 "GoodCACRL.crl",
    429         };
    430 
    431         assertInvalidPath(trustAnchor, certs, crls);
    432     }
    433 
    434     /** NIST PKITS test 4.3.2 */
    435     public void testVerifyingNameChaining_InvalidNameChainingOrderTest2() throws Exception {
    436         String trustAnchor = "TrustAnchorRootCertificate.crt";
    437 
    438         String[] certs = {
    439                 "InvalidNameChainingOrderTest2EE.crt",
    440                 "NameOrderingCACert.crt",
    441         };
    442 
    443         String[] crls = {
    444                 "TrustAnchorRootCRL.crl",
    445                 "NameOrderCACRL.crl",
    446         };
    447 
    448         assertInvalidPath(trustAnchor, certs, crls);
    449     }
    450 
    451     /** NIST PKITS test 4.3.3 */
    452     public void testVerifyingNameChaining_ValidNameChainingWhitespaceTest3() throws Exception {
    453         String trustAnchor = "TrustAnchorRootCertificate.crt";
    454 
    455         String[] certs = {
    456                 "ValidNameChainingWhitespaceTest3EE.crt",
    457                 "GoodCACert.crt",
    458         };
    459 
    460         String[] crls = {
    461                 "TrustAnchorRootCRL.crl",
    462                 "GoodCACRL.crl",
    463         };
    464 
    465         assertValidPath(trustAnchor, certs, crls);
    466     }
    467 
    468     /** NIST PKITS test 4.3.4 */
    469     public void testVerifyingNameChaining_ValidNameChainingWhitespaceTest4() throws Exception {
    470         String trustAnchor = "TrustAnchorRootCertificate.crt";
    471 
    472         String[] certs = {
    473                 "ValidNameChainingWhitespaceTest4EE.crt",
    474                 "GoodCACert.crt",
    475         };
    476 
    477         String[] crls = {
    478                 "TrustAnchorRootCRL.crl",
    479                 "GoodCACRL.crl",
    480         };
    481 
    482         assertValidPath(trustAnchor, certs, crls);
    483     }
    484 
    485     /** NIST PKITS test 4.3.5 */
    486     public void testVerifyingNameChaining_ValidNameChainingCapitalizationTest5() throws Exception {
    487         String trustAnchor = "TrustAnchorRootCertificate.crt";
    488 
    489         String[] certs = {
    490                 "ValidNameChainingCapitalizationTest5EE.crt",
    491                 "GoodCACert.crt",
    492         };
    493 
    494         String[] crls = {
    495                 "TrustAnchorRootCRL.crl",
    496                 "GoodCACRL.crl",
    497         };
    498 
    499         assertValidPath(trustAnchor, certs, crls);
    500     }
    501 
    502     /** NIST PKITS test 4.3.6 */
    503     public void testVerifyingNameChaining_ValidNameChainingUIDsTest6() throws Exception {
    504         String trustAnchor = "TrustAnchorRootCertificate.crt";
    505 
    506         String[] certs = {
    507                 "ValidNameUIDsTest6EE.crt",
    508                 "UIDCACert.crt",
    509         };
    510 
    511         String[] crls = {
    512                 "TrustAnchorRootCRL.crl",
    513                 "UIDCACRL.crl",
    514         };
    515 
    516         assertValidPath(trustAnchor, certs, crls);
    517     }
    518 
    519     /** NIST PKITS test 4.3.7 */
    520     public void testVerifyingNameChaining_ValidRFC3280MandatoryAttributeTypesTest7() throws Exception {
    521         String trustAnchor = "TrustAnchorRootCertificate.crt";
    522 
    523         String[] certs = {
    524                 "ValidRFC3280MandatoryAttributeTypesTest7EE.crt",
    525                 "RFC3280MandatoryAttributeTypesCACert.crt",
    526         };
    527 
    528         String[] crls = {
    529                 "TrustAnchorRootCRL.crl",
    530                 "RFC3280MandatoryAttributeTypesCACRL.crl",
    531         };
    532 
    533         assertValidPath(trustAnchor, certs, crls);
    534     }
    535 
    536     /** NIST PKITS test 4.3.8 */
    537     public void testVerifyingNameChaining_ValidRFC3280OptionalAttributeTypesTest8() throws Exception {
    538         String trustAnchor = "TrustAnchorRootCertificate.crt";
    539 
    540         String[] certs = {
    541                 "ValidRFC3280OptionalAttributeTypesTest8EE.crt",
    542                 "RFC3280OptionalAttributeTypesCACert.crt",
    543         };
    544 
    545         String[] crls = {
    546                 "TrustAnchorRootCRL.crl",
    547                 "RFC3280OptionalAttributeTypesCACRL.crl",
    548         };
    549 
    550         assertValidPath(trustAnchor, certs, crls);
    551     }
    552 
    553     /** NIST PKITS test 4.3.9 */
    554     public void testVerifyingNameChaining_ValidUTF8StringEncodedNamesTest9() throws Exception {
    555         String trustAnchor = "TrustAnchorRootCertificate.crt";
    556 
    557         String[] certs = {
    558                 "ValidUTF8StringEncodedNamesTest9EE.crt",
    559                 "UTF8StringEncodedNamesCACert.crt",
    560         };
    561 
    562         String[] crls = {
    563                 "TrustAnchorRootCRL.crl",
    564                 "UTF8StringEncodedNamesCACRL.crl",
    565         };
    566 
    567         assertValidPath(trustAnchor, certs, crls);
    568     }
    569 
    570     /** NIST PKITS test 4.3.10 */
    571     public void testVerifyingNameChaining_ValidRolloverfromPrintableStringtoUTF8StringTest10() throws Exception {
    572         String trustAnchor = "TrustAnchorRootCertificate.crt";
    573 
    574         String[] certs = {
    575                 "ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt",
    576                 "RolloverfromPrintableStringtoUTF8StringCACert.crt",
    577         };
    578 
    579         String[] crls = {
    580                 "TrustAnchorRootCRL.crl",
    581                 "RolloverfromPrintableStringtoUTF8StringCACRL.crl",
    582         };
    583 
    584         assertValidPath(trustAnchor, certs, crls);
    585     }
    586 
    587     /** NIST PKITS test 4.3.11 */
    588     public void testVerifyingNameChaining_ValidUTF8StringCaseInsensitiveMatchTest11() throws Exception {
    589         String trustAnchor = "TrustAnchorRootCertificate.crt";
    590 
    591         String[] certs = {
    592                 "ValidUTF8StringCaseInsensitiveMatchTest11EE.crt",
    593                 "UTF8StringCaseInsensitiveMatchCACert.crt",
    594         };
    595 
    596         String[] crls = {
    597                 "TrustAnchorRootCRL.crl",
    598                 "UTF8StringCaseInsensitiveMatchCACRL.crl",
    599         };
    600 
    601         assertValidPath(trustAnchor, certs, crls);
    602     }
    603 
    604     /** NIST PKITS test 4.4.1 */
    605     public void testBasicCertificateRevocationTests_MissingCRLTest1() throws Exception {
    606         String trustAnchor = "TrustAnchorRootCertificate.crt";
    607 
    608         String[] certs = {
    609                 "InvalidMissingCRLTest1EE.crt",
    610                 "NoCRLCACert.crt",
    611         };
    612 
    613         String[] crls = {
    614                 "TrustAnchorRootCRL.crl",
    615         };
    616 
    617         assertInvalidPath(trustAnchor, certs, crls);
    618     }
    619 
    620     /** NIST PKITS test 4.4.2 */
    621     public void testBasicCertificateRevocationTests_InvalidRevokedCATest2() throws Exception {
    622         String trustAnchor = "TrustAnchorRootCertificate.crt";
    623 
    624         String[] certs = {
    625                 "InvalidRevokedCATest2EE.crt",
    626                 "RevokedsubCACert.crt",
    627                 "GoodCACert.crt",
    628         };
    629 
    630         String[] crls = {
    631                 "TrustAnchorRootCRL.crl",
    632                 "GoodCACRL.crl",
    633                 "RevokedsubCACRL.crl",
    634         };
    635 
    636         assertInvalidPath(trustAnchor, certs, crls);
    637     }
    638 
    639     /** NIST PKITS test 4.4.3 */
    640     public void testBasicCertificateRevocationTests_InvalidRevokedEETest3() throws Exception {
    641         String trustAnchor = "TrustAnchorRootCertificate.crt";
    642 
    643         String[] certs = {
    644                 "InvalidRevokedEETest3EE.crt",
    645                 "GoodCACert.crt",
    646         };
    647 
    648         String[] crls = {
    649                 "TrustAnchorRootCRL.crl",
    650                 "GoodCACRL.crl",
    651         };
    652 
    653         assertInvalidPath(trustAnchor, certs, crls);
    654     }
    655 
    656     /** NIST PKITS test 4.4.4 */
    657     public void testBasicCertificateRevocationTests_InvalidBadCRLSignatureTest4() throws Exception {
    658         String trustAnchor = "TrustAnchorRootCertificate.crt";
    659 
    660         String[] certs = {
    661                 "InvalidBadCRLSignatureTest4EE.crt",
    662                 "BadCRLSignatureCACert.crt",
    663         };
    664 
    665         String[] crls = {
    666                 "TrustAnchorRootCRL.crl",
    667                 "BadCRLSignatureCACRL.crl",
    668         };
    669 
    670         assertInvalidPath(trustAnchor, certs, crls);
    671     }
    672 
    673     /** NIST PKITS test 4.4.5 */
    674     public void testBasicCertificateRevocationTests_InvalidBadCRLIssuerNameTest5() throws Exception {
    675         String trustAnchor = "TrustAnchorRootCertificate.crt";
    676 
    677         String[] certs = {
    678                 "InvalidBadCRLIssuerNameTest5EE.crt",
    679                 "BadCRLIssuerNameCACert.crt",
    680         };
    681 
    682         String[] crls = {
    683                 "TrustAnchorRootCRL.crl",
    684                 "BadCRLIssuerNameCACRL.crl",
    685         };
    686 
    687         assertInvalidPath(trustAnchor, certs, crls);
    688     }
    689 
    690     /** NIST PKITS test 4.4.6 */
    691     public void testBasicCertificateRevocationTests_InvalidWrongCRLTest6() throws Exception {
    692         String trustAnchor = "TrustAnchorRootCertificate.crt";
    693 
    694         String[] certs = {
    695                 "InvalidWrongCRLTest6EE.crt",
    696                 "WrongCRLCACert.crt",
    697         };
    698 
    699         String[] crls = {
    700                 "TrustAnchorRootCRL.crl",
    701                 "WrongCRLCACRL.crl",
    702         };
    703 
    704         assertInvalidPath(trustAnchor, certs, crls);
    705     }
    706 
    707     /** NIST PKITS test 4.4.7 */
    708     public void testBasicCertificateRevocationTests_ValidTwoCRLsTest7() throws Exception {
    709         String trustAnchor = "TrustAnchorRootCertificate.crt";
    710 
    711         String[] certs = {
    712                 "ValidTwoCRLsTest7EE.crt",
    713                 "TwoCRLsCACert.crt",
    714         };
    715 
    716         String[] crls = {
    717                 "TrustAnchorRootCRL.crl",
    718                 "TwoCRLsCAGoodCRL.crl",
    719                 "TwoCRLsCABadCRL.crl",
    720         };
    721 
    722         assertValidPath(trustAnchor, certs, crls);
    723     }
    724 
    725     /** NIST PKITS test 4.4.8 */
    726     public void testBasicCertificateRevocationTests_InvalidUnknownCRLEntryExtensionTest8() throws Exception {
    727         String trustAnchor = "TrustAnchorRootCertificate.crt";
    728 
    729         String[] certs = {
    730                 "InvalidUnknownCRLEntryExtensionTest8EE.crt",
    731                 "UnknownCRLEntryExtensionCACert.crt",
    732         };
    733 
    734         String[] crls = {
    735                 "TrustAnchorRootCRL.crl",
    736                 "UnknownCRLEntryExtensionCACRL.crl",
    737         };
    738 
    739         assertInvalidPath(trustAnchor, certs, crls);
    740     }
    741 
    742     /** NIST PKITS test 4.4.9 */
    743     public void testBasicCertificateRevocationTests_InvalidUnknownCRLExtensionTest9() throws Exception {
    744         String trustAnchor = "TrustAnchorRootCertificate.crt";
    745 
    746         String[] certs = {
    747                 "InvalidUnknownCRLExtensionTest9EE.crt",
    748                 "UnknownCRLExtensionCACert.crt",
    749         };
    750 
    751         String[] crls = {
    752                 "TrustAnchorRootCRL.crl",
    753                 "UnknownCRLExtensionCACRL.crl",
    754         };
    755 
    756         assertInvalidPath(trustAnchor, certs, crls);
    757     }
    758 
    759     /** NIST PKITS test 4.4.10 */
    760     public void testBasicCertificateRevocationTests_InvalidUnknownCRLExtensionTest10() throws Exception {
    761         String trustAnchor = "TrustAnchorRootCertificate.crt";
    762 
    763         String[] certs = {
    764                 "InvalidUnknownCRLExtensionTest10EE.crt",
    765                 "UnknownCRLExtensionCACert.crt",
    766         };
    767 
    768         String[] crls = {
    769                 "TrustAnchorRootCRL.crl",
    770                 "UnknownCRLExtensionCACRL.crl",
    771         };
    772 
    773         assertInvalidPath(trustAnchor, certs, crls);
    774     }
    775 
    776     /** NIST PKITS test 4.4.11 */
    777     public void testBasicCertificateRevocationTests_InvalidOldCRLnextUpdateTest11() throws Exception {
    778         String trustAnchor = "TrustAnchorRootCertificate.crt";
    779 
    780         String[] certs = {
    781                 "InvalidOldCRLnextUpdateTest11EE.crt",
    782                 "OldCRLnextUpdateCACert.crt",
    783         };
    784 
    785         String[] crls = {
    786                 "TrustAnchorRootCRL.crl",
    787                 "OldCRLnextUpdateCACRL.crl",
    788         };
    789 
    790         assertInvalidPath(trustAnchor, certs, crls);
    791     }
    792 
    793     /** NIST PKITS test 4.4.12 */
    794     public void testBasicCertificateRevocationTests_Invalidpre2000CRLnextUpdateTest12() throws Exception {
    795         String trustAnchor = "TrustAnchorRootCertificate.crt";
    796 
    797         String[] certs = {
    798                 "Invalidpre2000CRLnextUpdateTest12EE.crt",
    799                 "pre2000CRLnextUpdateCACert.crt",
    800         };
    801 
    802         String[] crls = {
    803                 "TrustAnchorRootCRL.crl",
    804                 "pre2000CRLnextUpdateCACRL.crl",
    805         };
    806 
    807         assertInvalidPath(trustAnchor, certs, crls);
    808     }
    809 
    810     /** NIST PKITS test 4.4.13 */
    811     public void testBasicCertificateRevocationTests_ValidGeneralizedTimeCRLnextUpdateTest13() throws Exception {
    812         String trustAnchor = "TrustAnchorRootCertificate.crt";
    813 
    814         String[] certs = {
    815                 "ValidGeneralizedTimeCRLnextUpdateTest13EE.crt",
    816                 "GeneralizedTimeCRLnextUpdateCACert.crt",
    817         };
    818 
    819         String[] crls = {
    820                 "TrustAnchorRootCRL.crl",
    821                 "GeneralizedTimeCRLnextUpdateCACRL.crl",
    822         };
    823 
    824         assertValidPath(trustAnchor, certs, crls);
    825     }
    826 
    827     /** NIST PKITS test 4.4.14 */
    828     public void testBasicCertificateRevocationTests_ValidNegativeSerialNumberTest14() throws Exception {
    829         String trustAnchor = "TrustAnchorRootCertificate.crt";
    830 
    831         String[] certs = {
    832                 "ValidNegativeSerialNumberTest14EE.crt",
    833                 "NegativeSerialNumberCACert.crt",
    834         };
    835 
    836         String[] crls = {
    837                 "TrustAnchorRootCRL.crl",
    838                 "NegativeSerialNumberCACRL.crl",
    839         };
    840 
    841         assertValidPath(trustAnchor, certs, crls);
    842     }
    843 
    844     /** NIST PKITS test 4.4.15 */
    845     public void testBasicCertificateRevocationTests_InvalidNegativeSerialNumberTest15() throws Exception {
    846         String trustAnchor = "TrustAnchorRootCertificate.crt";
    847 
    848         String[] certs = {
    849                 "InvalidNegativeSerialNumberTest15EE.crt",
    850                 "NegativeSerialNumberCACert.crt",
    851         };
    852 
    853         String[] crls = {
    854                 "TrustAnchorRootCRL.crl",
    855                 "NegativeSerialNumberCACRL.crl",
    856         };
    857 
    858         assertInvalidPath(trustAnchor, certs, crls);
    859     }
    860 
    861     /** NIST PKITS test 4.4.16 */
    862     public void testBasicCertificateRevocationTests_ValidLongSerialNumberTest16() throws Exception {
    863         String trustAnchor = "TrustAnchorRootCertificate.crt";
    864 
    865         String[] certs = {
    866                 "ValidLongSerialNumberTest16EE.crt",
    867                 "LongSerialNumberCACert.crt",
    868         };
    869 
    870         String[] crls = {
    871                 "TrustAnchorRootCRL.crl",
    872                 "LongSerialNumberCACRL.crl",
    873         };
    874 
    875         assertValidPath(trustAnchor, certs, crls);
    876     }
    877 
    878     /** NIST PKITS test 4.4.17 */
    879     public void testBasicCertificateRevocationTests_ValidLongSerialNumberTest17() throws Exception {
    880         String trustAnchor = "TrustAnchorRootCertificate.crt";
    881 
    882         String[] certs = {
    883                 "ValidLongSerialNumberTest17EE.crt",
    884                 "LongSerialNumberCACert.crt",
    885         };
    886 
    887         String[] crls = {
    888                 "TrustAnchorRootCRL.crl",
    889                 "LongSerialNumberCACRL.crl",
    890         };
    891 
    892         assertValidPath(trustAnchor, certs, crls);
    893     }
    894 
    895     /** NIST PKITS test 4.4.18 */
    896     public void testBasicCertificateRevocationTests_InvalidLongSerialNumberTest18() throws Exception {
    897         String trustAnchor = "TrustAnchorRootCertificate.crt";
    898 
    899         String[] certs = {
    900                 "InvalidLongSerialNumberTest18EE.crt",
    901                 "LongSerialNumberCACert.crt",
    902         };
    903 
    904         String[] crls = {
    905                 "TrustAnchorRootCRL.crl",
    906                 "LongSerialNumberCACRL.crl",
    907         };
    908 
    909         assertInvalidPath(trustAnchor, certs, crls);
    910     }
    911 
    912     /** NIST PKITS test 4.4.19 */
    913     public void testBasicCertificateRevocationTests_ValidSeparateCertificateandCRLKeysTest19() throws Exception {
    914         String trustAnchor = "TrustAnchorRootCertificate.crt";
    915 
    916         String[] certs = {
    917                 "ValidSeparateCertificateandCRLKeysTest19EE.crt",
    918                 "SeparateCertificateandCRLKeysCRLSigningCert.crt",
    919                 "SeparateCertificateandCRLKeysCertificateSigningCACert.crt",
    920         };
    921 
    922         String[] crls = {
    923                 "TrustAnchorRootCRL.crl",
    924                 "SeparateCertificateandCRLKeysCRL.crl",
    925         };
    926 
    927         assertValidPath(trustAnchor, certs, crls);
    928     }
    929 
    930     /** NIST PKITS test 4.4.20 */
    931     public void testBasicCertificateRevocationTests_InvalidSeparateCertificateandCRLKeysTest20() throws Exception {
    932         String trustAnchor = "TrustAnchorRootCertificate.crt";
    933 
    934         String[] certs = {
    935                 "InvalidSeparateCertificateandCRLKeysTest20EE.crt",
    936                 "SeparateCertificateandCRLKeysCRLSigningCert.crt",
    937                 "SeparateCertificateandCRLKeysCertificateSigningCACert.crt",
    938         };
    939 
    940         String[] crls = {
    941                 "TrustAnchorRootCRL.crl",
    942                 "SeparateCertificateandCRLKeysCRL.crl",
    943         };
    944 
    945         assertValidPath(trustAnchor, certs, crls);
    946     }
    947 
    948     /** NIST PKITS test 4.4.21 */
    949     public void testBasicCertificateRevocationTests_InvalidSeparateCertificateandCRLKeysTest21() throws Exception {
    950         String trustAnchor = "TrustAnchorRootCertificate.crt";
    951 
    952         String[] certs = {
    953                 "InvalidSeparateCertificateandCRLKeysTest21EE.crt",
    954                 "SeparateCertificateandCRLKeysCA2CRLSigningCert.crt",
    955                 "SeparateCertificateandCRLKeysCA2CertificateSigningCACert.crt",
    956         };
    957 
    958         String[] crls = {
    959                 "TrustAnchorRootCRL.crl",
    960                 "SeparateCertificateandCRLKeysCA2CRL.crl",
    961         };
    962 
    963         assertValidPath(trustAnchor, certs, crls);
    964     }
    965 
    966     /** NIST PKITS test 4.5.1 */
    967     public void testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedOldWithNewTest1() throws Exception {
    968         String trustAnchor = "TrustAnchorRootCertificate.crt";
    969 
    970         String[] certs = {
    971                 "ValidBasicSelfIssuedOldWithNewTest1EE.crt",
    972                 "BasicSelfIssuedNewKeyOldWithNewCACert.crt",
    973                 "BasicSelfIssuedNewKeyCACert.crt",
    974         };
    975 
    976         String[] crls = {
    977                 "TrustAnchorRootCRL.crl",
    978                 "BasicSelfIssuedNewKeyCACRL.crl",
    979         };
    980 
    981         assertValidPath(trustAnchor, certs, crls);
    982     }
    983 
    984     /** NIST PKITS test 4.5.2 */
    985     public void testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedOldWithNewTest2() throws Exception {
    986         String trustAnchor = "TrustAnchorRootCertificate.crt";
    987 
    988         String[] certs = {
    989                 "InvalidBasicSelfIssuedOldWithNewTest2EE.crt",
    990                 "BasicSelfIssuedNewKeyOldWithNewCACert.crt",
    991                 "BasicSelfIssuedNewKeyCACert.crt",
    992         };
    993 
    994         String[] crls = {
    995                 "TrustAnchorRootCRL.crl",
    996                 "BasicSelfIssuedNewKeyCACRL.crl",
    997         };
    998 
    999         assertInvalidPath(trustAnchor, certs, crls);
   1000     }
   1001 
   1002     /** NIST PKITS test 4.5.3 */
   1003     public void testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedNewWithOldTest3() throws Exception {
   1004         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1005 
   1006         String[] certs = {
   1007                 "ValidBasicSelfIssuedNewWithOldTest3EE.crt",
   1008                 "BasicSelfIssuedOldKeyNewWithOldCACert.crt",
   1009                 "BasicSelfIssuedOldKeyCACert.crt",
   1010         };
   1011 
   1012         String[] crls = {
   1013                 "TrustAnchorRootCRL.crl",
   1014                 "BasicSelfIssuedOldKeySelfIssuedCertCRL.crl",
   1015                 "BasicSelfIssuedOldKeyCACRL.crl",
   1016         };
   1017 
   1018         assertValidPath(trustAnchor, certs, crls);
   1019     }
   1020 
   1021     /** NIST PKITS test 4.5.4 */
   1022     public void testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedNewWithOldTest4() throws Exception {
   1023         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1024 
   1025         String[] certs = {
   1026                 "ValidBasicSelfIssuedNewWithOldTest4EE.crt",
   1027                 "BasicSelfIssuedOldKeyNewWithOldCACert.crt",
   1028                 "BasicSelfIssuedOldKeyCACert.crt",
   1029         };
   1030 
   1031         String[] crls = {
   1032                 "TrustAnchorRootCRL.crl",
   1033                 "BasicSelfIssuedOldKeySelfIssuedCertCRL.crl",
   1034                 "BasicSelfIssuedOldKeyCACRL.crl",
   1035         };
   1036 
   1037         assertValidPath(trustAnchor, certs, crls);
   1038     }
   1039 
   1040     /** NIST PKITS test 4.5.5 */
   1041     public void testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedNewWithOldTest5() throws Exception {
   1042         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1043 
   1044         String[] certs = {
   1045                 "InvalidBasicSelfIssuedNewWithOldTest5EE.crt",
   1046                 "BasicSelfIssuedOldKeyNewWithOldCACert.crt",
   1047                 "BasicSelfIssuedOldKeyCACert.crt",
   1048         };
   1049 
   1050         String[] crls = {
   1051                 "TrustAnchorRootCRL.crl",
   1052                 "BasicSelfIssuedOldKeySelfIssuedCertCRL.crl",
   1053                 "BasicSelfIssuedOldKeyCACRL.crl",
   1054         };
   1055 
   1056         assertInvalidPath(trustAnchor, certs, crls);
   1057     }
   1058 
   1059     /** NIST PKITS test 4.5.6 */
   1060     public void testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedCRLSigningKeyTest6() throws Exception {
   1061         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1062 
   1063         String[] certs = {
   1064                 "ValidBasicSelfIssuedCRLSigningKeyTest6EE.crt",
   1065                 "BasicSelfIssuedCRLSigningKeyCRLCert.crt",
   1066                 "BasicSelfIssuedCRLSigningKeyCACert.crt",
   1067         };
   1068 
   1069         String[] crls = {
   1070                 "TrustAnchorRootCRL.crl",
   1071                 "BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl",
   1072                 "BasicSelfIssuedCRLSigningKeyCACRL.crl",
   1073         };
   1074 
   1075         assertValidPath(trustAnchor, certs, crls);
   1076     }
   1077 
   1078     /** NIST PKITS test 4.5.7 */
   1079     public void testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedCRLSigningKeyTest7() throws Exception {
   1080         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1081 
   1082         String[] certs = {
   1083                 "InvalidBasicSelfIssuedCRLSigningKeyTest7EE.crt",
   1084                 "BasicSelfIssuedCRLSigningKeyCRLCert.crt",
   1085                 "BasicSelfIssuedCRLSigningKeyCACert.crt",
   1086         };
   1087 
   1088         String[] crls = {
   1089                 "TrustAnchorRootCRL.crl",
   1090                 "BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl",
   1091                 "BasicSelfIssuedCRLSigningKeyCACRL.crl",
   1092         };
   1093 
   1094         assertInvalidPath(trustAnchor, certs, crls);
   1095     }
   1096 
   1097     /** NIST PKITS test 4.5.8 */
   1098     public void testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedCRLSigningKeyTest8() throws Exception {
   1099         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1100 
   1101         String[] certs = {
   1102                 "InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt",
   1103                 "BasicSelfIssuedCRLSigningKeyCRLCert.crt",
   1104                 "BasicSelfIssuedCRLSigningKeyCACert.crt",
   1105         };
   1106 
   1107         String[] crls = {
   1108                 "TrustAnchorRootCRL.crl",
   1109                 "BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl",
   1110                 "BasicSelfIssuedCRLSigningKeyCACRL.crl",
   1111         };
   1112 
   1113         assertInvalidPath(trustAnchor, certs, crls);
   1114     }
   1115 
   1116     /** NIST PKITS test 4.6.1 */
   1117     public void testVerifyingBasicConstraints_InvalidMissingbasicConstraintsTest1() throws Exception {
   1118         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1119 
   1120         String[] certs = {
   1121                 "InvalidMissingbasicConstraintsTest1EE.crt",
   1122                 "MissingbasicConstraintsCACert.crt",
   1123         };
   1124 
   1125         String[] crls = {
   1126                 "TrustAnchorRootCRL.crl",
   1127                 "MissingbasicConstraintsCACRL.crl",
   1128         };
   1129 
   1130         assertInvalidPath(trustAnchor, certs, crls);
   1131     }
   1132 
   1133     /** NIST PKITS test 4.6.2 */
   1134     public void testVerifyingBasicConstraints_InvalidcAFalseTest2() throws Exception {
   1135         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1136 
   1137         String[] certs = {
   1138                 "InvalidcAFalseTest2EE.crt",
   1139                 "basicConstraintsCriticalcAFalseCACert.crt",
   1140         };
   1141 
   1142         String[] crls = {
   1143                 "TrustAnchorRootCRL.crl",
   1144                 "basicConstraintsCriticalcAFalseCACRL.crl",
   1145         };
   1146 
   1147         assertInvalidPath(trustAnchor, certs, crls);
   1148     }
   1149 
   1150     /** NIST PKITS test 4.6.3 */
   1151     public void testVerifyingBasicConstraints_InvalidcAFalseTest3() throws Exception {
   1152         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1153 
   1154         String[] certs = {
   1155                 "InvalidcAFalseTest3EE.crt",
   1156                 "basicConstraintsNotCriticalcAFalseCACert.crt",
   1157         };
   1158 
   1159         String[] crls = {
   1160                 "TrustAnchorRootCRL.crl",
   1161                 "basicConstraintsNotCriticalcAFalseCACRL.crl",
   1162         };
   1163 
   1164         assertInvalidPath(trustAnchor, certs, crls);
   1165     }
   1166 
   1167     /** NIST PKITS test 4.6.4 */
   1168     public void testVerifyingBasicConstraints_ValidbasicConstraintsNotCriticalTest4() throws Exception {
   1169         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1170 
   1171         String[] certs = {
   1172                 "ValidbasicConstraintsNotCriticalTest4EE.crt",
   1173                 "basicConstraintsNotCriticalCACert.crt",
   1174         };
   1175 
   1176         String[] crls = {
   1177                 "TrustAnchorRootCRL.crl",
   1178                 "basicConstraintsNotCriticalCACRL.crl",
   1179         };
   1180 
   1181         assertValidPath(trustAnchor, certs, crls);
   1182     }
   1183 
   1184     /** NIST PKITS test 4.6.5 */
   1185     public void testVerifyingBasicConstraints_InvalidpathLenConstraintTest5() throws Exception {
   1186         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1187 
   1188         String[] certs = {
   1189                 "InvalidpathLenConstraintTest5EE.crt",
   1190                 "pathLenConstraint0subCACert.crt",
   1191                 "pathLenConstraint0CACert.crt",
   1192         };
   1193 
   1194         String[] crls = {
   1195                 "TrustAnchorRootCRL.crl",
   1196                 "pathLenConstraint0CACRL.crl",
   1197                 "pathLenConstraint0subCACRL.crl",
   1198         };
   1199 
   1200         assertInvalidPath(trustAnchor, certs, crls);
   1201     }
   1202 
   1203     /** NIST PKITS test 4.6.6 */
   1204     public void testVerifyingBasicConstraints_InvalidpathLenConstraintTest6() throws Exception {
   1205         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1206 
   1207         String[] certs = {
   1208                 "InvalidpathLenConstraintTest6EE.crt",
   1209                 "pathLenConstraint0subCACert.crt",
   1210                 "pathLenConstraint0CACert.crt",
   1211         };
   1212 
   1213         String[] crls = {
   1214                 "TrustAnchorRootCRL.crl",
   1215                 "pathLenConstraint0CACRL.crl",
   1216                 "pathLenConstraint0subCACRL.crl",
   1217         };
   1218 
   1219         assertInvalidPath(trustAnchor, certs, crls);
   1220     }
   1221 
   1222     /** NIST PKITS test 4.6.7 */
   1223     public void testVerifyingBasicConstraints_ValidpathLenConstraintTest7() throws Exception {
   1224         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1225 
   1226         String[] certs = {
   1227                 "ValidpathLenConstraintTest7EE.crt",
   1228                 "pathLenConstraint0CACert.crt",
   1229         };
   1230 
   1231         String[] crls = {
   1232                 "TrustAnchorRootCRL.crl",
   1233                 "pathLenConstraint0CACRL.crl",
   1234         };
   1235 
   1236         assertValidPath(trustAnchor, certs, crls);
   1237     }
   1238 
   1239     /** NIST PKITS test 4.6.8 */
   1240     public void testVerifyingBasicConstraints_ValidpathLenConstraintTest8() throws Exception {
   1241         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1242 
   1243         String[] certs = {
   1244                 "ValidpathLenConstraintTest8EE.crt",
   1245                 "pathLenConstraint0CACert.crt",
   1246         };
   1247 
   1248         String[] crls = {
   1249                 "TrustAnchorRootCRL.crl",
   1250                 "pathLenConstraint0CACRL.crl",
   1251         };
   1252 
   1253         assertValidPath(trustAnchor, certs, crls);
   1254     }
   1255 
   1256     /** NIST PKITS test 4.6.9 */
   1257     public void testVerifyingBasicConstraints_InvalidpathLenConstraintTest9() throws Exception {
   1258         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1259 
   1260         String[] certs = {
   1261                 "InvalidpathLenConstraintTest9EE.crt",
   1262                 "pathLenConstraint6subsubCA00Cert.crt",
   1263                 "pathLenConstraint6subCA0Cert.crt",
   1264                 "pathLenConstraint6CACert.crt",
   1265         };
   1266 
   1267         String[] crls = {
   1268                 "TrustAnchorRootCRL.crl",
   1269                 "pathLenConstraint6CACRL.crl",
   1270                 "pathLenConstraint6subCA0CRL.crl",
   1271                 "pathLenConstraint6subsubCA00CRL.crl",
   1272         };
   1273 
   1274         assertInvalidPath(trustAnchor, certs, crls);
   1275     }
   1276 
   1277     /** NIST PKITS test 4.6.10 */
   1278     public void testVerifyingBasicConstraints_InvalidpathLenConstraintTest10() throws Exception {
   1279         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1280 
   1281         String[] certs = {
   1282                 "InvalidpathLenConstraintTest10EE.crt",
   1283                 "pathLenConstraint6subsubCA00Cert.crt",
   1284                 "pathLenConstraint6subCA0Cert.crt",
   1285                 "pathLenConstraint6CACert.crt",
   1286         };
   1287 
   1288         String[] crls = {
   1289                 "TrustAnchorRootCRL.crl",
   1290                 "pathLenConstraint6CACRL.crl",
   1291                 "pathLenConstraint6subCA0CRL.crl",
   1292                 "pathLenConstraint6subsubCA00CRL.crl",
   1293         };
   1294 
   1295         assertInvalidPath(trustAnchor, certs, crls);
   1296     }
   1297 
   1298     /** NIST PKITS test 4.6.11 */
   1299     public void testVerifyingBasicConstraints_InvalidpathLenConstraintTest11() throws Exception {
   1300         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1301 
   1302         String[] certs = {
   1303                 "InvalidpathLenConstraintTest11EE.crt",
   1304                 "pathLenConstraint6subsubsubCA11XCert.crt",
   1305                 "pathLenConstraint6subsubCA11Cert.crt",
   1306                 "pathLenConstraint6subCA1Cert.crt",
   1307                 "pathLenConstraint6CACert.crt",
   1308         };
   1309 
   1310         String[] crls = {
   1311                 "TrustAnchorRootCRL.crl",
   1312                 "pathLenConstraint6CACRL.crl",
   1313                 "pathLenConstraint6subCA1CRL.crl",
   1314                 "pathLenConstraint6subsubCA11CRL.crl",
   1315                 "pathLenConstraint6subsubsubCA11XCRL.crl",
   1316         };
   1317 
   1318         assertInvalidPath(trustAnchor, certs, crls);
   1319     }
   1320 
   1321     /** NIST PKITS test 4.6.12 */
   1322     public void testVerifyingBasicConstraints_InvalidpathLenConstraintTest12() throws Exception {
   1323         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1324 
   1325         String[] certs = {
   1326                 "InvalidpathLenConstraintTest12EE.crt",
   1327                 "pathLenConstraint6subsubsubCA11XCert.crt",
   1328                 "pathLenConstraint6subsubCA11Cert.crt",
   1329                 "pathLenConstraint6subCA1Cert.crt",
   1330                 "pathLenConstraint6CACert.crt",
   1331         };
   1332 
   1333         String[] crls = {
   1334                 "TrustAnchorRootCRL.crl",
   1335                 "pathLenConstraint6CACRL.crl",
   1336                 "pathLenConstraint6subCA1CRL.crl",
   1337                 "pathLenConstraint6subsubCA11CRL.crl",
   1338                 "pathLenConstraint6subsubsubCA11XCRL.crl",
   1339         };
   1340 
   1341         assertInvalidPath(trustAnchor, certs, crls);
   1342     }
   1343 
   1344     /** NIST PKITS test 4.6.13 */
   1345     public void testVerifyingBasicConstraints_ValidpathLenConstraintTest13() throws Exception {
   1346         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1347 
   1348         String[] certs = {
   1349                 "ValidpathLenConstraintTest13EE.crt",
   1350                 "pathLenConstraint6subsubsubCA41XCert.crt",
   1351                 "pathLenConstraint6subsubCA41Cert.crt",
   1352                 "pathLenConstraint6subCA4Cert.crt",
   1353                 "pathLenConstraint6CACert.crt",
   1354         };
   1355 
   1356         String[] crls = {
   1357                 "TrustAnchorRootCRL.crl",
   1358                 "pathLenConstraint6CACRL.crl",
   1359                 "pathLenConstraint6subCA4CRL.crl",
   1360                 "pathLenConstraint6subsubCA41CRL.crl",
   1361                 "pathLenConstraint6subsubsubCA41XCRL.crl",
   1362         };
   1363 
   1364         assertValidPath(trustAnchor, certs, crls);
   1365     }
   1366 
   1367     /** NIST PKITS test 4.6.14 */
   1368     public void testVerifyingBasicConstraints_ValidpathLenConstraintTest14() throws Exception {
   1369         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1370 
   1371         String[] certs = {
   1372                 "ValidpathLenConstraintTest14EE.crt",
   1373                 "pathLenConstraint6subsubsubCA41XCert.crt",
   1374                 "pathLenConstraint6subsubCA41Cert.crt",
   1375                 "pathLenConstraint6subCA4Cert.crt",
   1376                 "pathLenConstraint6CACert.crt",
   1377         };
   1378 
   1379         String[] crls = {
   1380                 "TrustAnchorRootCRL.crl",
   1381                 "pathLenConstraint6CACRL.crl",
   1382                 "pathLenConstraint6subCA4CRL.crl",
   1383                 "pathLenConstraint6subsubCA41CRL.crl",
   1384                 "pathLenConstraint6subsubsubCA41XCRL.crl",
   1385         };
   1386 
   1387         assertValidPath(trustAnchor, certs, crls);
   1388     }
   1389 
   1390     /** NIST PKITS test 4.6.15 */
   1391     public void testVerifyingBasicConstraints_ValidSelfIssuedpathLenConstraintTest15() throws Exception {
   1392         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1393 
   1394         String[] certs = {
   1395                 "ValidSelfIssuedpathLenConstraintTest15EE.crt",
   1396                 "pathLenConstraint0SelfIssuedCACert.crt",
   1397                 "pathLenConstraint0CACert.crt",
   1398         };
   1399 
   1400         String[] crls = {
   1401                 "TrustAnchorRootCRL.crl",
   1402                 "pathLenConstraint0CACRL.crl",
   1403         };
   1404 
   1405         assertValidPath(trustAnchor, certs, crls);
   1406     }
   1407 
   1408     /** NIST PKITS test 4.6.16 */
   1409     public void testVerifyingBasicConstraints_InvalidSelfIssuedpathLenConstraintTest16() throws Exception {
   1410         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1411 
   1412         String[] certs = {
   1413                 "InvalidSelfIssuedpathLenConstraintTest16EE.crt",
   1414                 "pathLenConstraint0subCA2Cert.crt",
   1415                 "pathLenConstraint0SelfIssuedCACert.crt",
   1416                 "pathLenConstraint0CACert.crt",
   1417         };
   1418 
   1419         String[] crls = {
   1420                 "TrustAnchorRootCRL.crl",
   1421                 "pathLenConstraint0CACRL.crl",
   1422                 "pathLenConstraint0subCA2CRL.crl",
   1423         };
   1424 
   1425         assertInvalidPath(trustAnchor, certs, crls);
   1426     }
   1427 
   1428     /** NIST PKITS test 4.6.17 */
   1429     public void testVerifyingBasicConstraints_ValidSelfIssuedpathLenConstraintTest17() throws Exception {
   1430         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1431 
   1432         String[] certs = {
   1433                 "ValidSelfIssuedpathLenConstraintTest17EE.crt",
   1434                 "pathLenConstraint1SelfIssuedsubCACert.crt",
   1435                 "pathLenConstraint1subCACert.crt",
   1436                 "pathLenConstraint1SelfIssuedCACert.crt",
   1437                 "pathLenConstraint1CACert.crt",
   1438         };
   1439 
   1440         String[] crls = {
   1441                 "TrustAnchorRootCRL.crl",
   1442                 "pathLenConstraint1CACRL.crl",
   1443                 "pathLenConstraint1subCACRL.crl",
   1444         };
   1445 
   1446         assertValidPath(trustAnchor, certs, crls);
   1447     }
   1448 
   1449     /** NIST PKITS test 4.7.1 */
   1450     public void testKeyUsage_InvalidkeyUsageCriticalkeyCertSignFalseTest1() throws Exception {
   1451         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1452 
   1453         String[] certs = {
   1454                 "InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt",
   1455                 "keyUsageCriticalkeyCertSignFalseCACert.crt",
   1456         };
   1457 
   1458         String[] crls = {
   1459                 "TrustAnchorRootCRL.crl",
   1460                 "keyUsageCriticalkeyCertSignFalseCACRL.crl",
   1461         };
   1462 
   1463         assertInvalidPath(trustAnchor, certs, crls);
   1464     }
   1465 
   1466     /** NIST PKITS test 4.7.2 */
   1467     public void testKeyUsage_InvalidkeyUsageNotCriticalkeyCertSignFalseTest2() throws Exception {
   1468         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1469 
   1470         String[] certs = {
   1471                 "InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt",
   1472                 "keyUsageNotCriticalkeyCertSignFalseCACert.crt",
   1473         };
   1474 
   1475         String[] crls = {
   1476                 "TrustAnchorRootCRL.crl",
   1477                 "keyUsageNotCriticalkeyCertSignFalseCACRL.crl",
   1478         };
   1479 
   1480         assertInvalidPath(trustAnchor, certs, crls);
   1481     }
   1482 
   1483     /** NIST PKITS test 4.7.3 */
   1484     public void testKeyUsage_ValidkeyUsageNotCriticalTest3() throws Exception {
   1485         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1486 
   1487         String[] certs = {
   1488                 "ValidkeyUsageNotCriticalTest3EE.crt",
   1489                 "keyUsageNotCriticalCACert.crt",
   1490         };
   1491 
   1492         String[] crls = {
   1493                 "TrustAnchorRootCRL.crl",
   1494                 "keyUsageNotCriticalCACRL.crl",
   1495         };
   1496 
   1497         assertValidPath(trustAnchor, certs, crls);
   1498     }
   1499 
   1500     /** NIST PKITS test 4.7.4 */
   1501     public void testKeyUsage_InvalidkeyUsageCriticalcRLSignFalseTest4() throws Exception {
   1502         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1503 
   1504         String[] certs = {
   1505                 "InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt",
   1506                 "keyUsageCriticalcRLSignFalseCACert.crt",
   1507         };
   1508 
   1509         String[] crls = {
   1510                 "TrustAnchorRootCRL.crl",
   1511                 "keyUsageCriticalcRLSignFalseCACRL.crl",
   1512         };
   1513 
   1514         assertInvalidPath(trustAnchor, certs, crls);
   1515     }
   1516 
   1517     /** NIST PKITS test 4.7.5 */
   1518     public void testKeyUsage_InvalidkeyUsageNotCriticalcRLSignFalseTest5() throws Exception {
   1519         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1520 
   1521         String[] certs = {
   1522                 "InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt",
   1523                 "keyUsageNotCriticalcRLSignFalseCACert.crt",
   1524         };
   1525 
   1526         String[] crls = {
   1527                 "TrustAnchorRootCRL.crl",
   1528                 "keyUsageNotCriticalcRLSignFalseCACRL.crl",
   1529         };
   1530 
   1531         assertInvalidPath(trustAnchor, certs, crls);
   1532     }
   1533 
   1534     // skipping sections 4.8 to 4.12
   1535 
   1536     /** NIST PKITS test 4.13.1 */
   1537     public void testKeyUsage_ValidDNnameConstraintsTest1() throws Exception {
   1538         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1539 
   1540         String[] certs = {
   1541                 "ValidDNnameConstraintsTest1EE.crt",
   1542                 "nameConstraintsDN1CACert.crt",
   1543         };
   1544 
   1545         String[] crls = {
   1546                 "TrustAnchorRootCRL.crl",
   1547                 "nameConstraintsDN1CACRL.crl",
   1548         };
   1549 
   1550         assertValidPath(trustAnchor, certs, crls);
   1551     }
   1552 
   1553     /** NIST PKITS test 4.13.2 */
   1554     public void testKeyUsage_InvalidDNnameConstraintsTest2() throws Exception {
   1555         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1556 
   1557         String[] certs = {
   1558                 "InvalidDNnameConstraintsTest2EE.crt",
   1559                 "nameConstraintsDN1CACert.crt",
   1560         };
   1561 
   1562         String[] crls = {
   1563                 "TrustAnchorRootCRL.crl",
   1564                 "nameConstraintsDN1CACRL.crl",
   1565         };
   1566 
   1567         assertInvalidPath(trustAnchor, certs, crls);
   1568     }
   1569 
   1570     /** NIST PKITS test 4.13.3 */
   1571     public void testKeyUsage_InvalidDNnameConstraintsTest3() throws Exception {
   1572         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1573 
   1574         String[] certs = {
   1575                 "InvalidDNnameConstraintsTest3EE.crt",
   1576                 "nameConstraintsDN1CACert.crt",
   1577         };
   1578 
   1579         String[] crls = {
   1580                 "TrustAnchorRootCRL.crl",
   1581                 "nameConstraintsDN1CACRL.crl",
   1582         };
   1583 
   1584         assertInvalidPath(trustAnchor, certs, crls);
   1585     }
   1586 
   1587     /** NIST PKITS test 4.13.4 */
   1588     public void testKeyUsage_ValidDNnameConstraintsTest4() throws Exception {
   1589         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1590 
   1591         String[] certs = {
   1592                 "ValidDNnameConstraintsTest4EE.crt",
   1593                 "nameConstraintsDN1CACert.crt",
   1594         };
   1595 
   1596         String[] crls = {
   1597                 "TrustAnchorRootCRL.crl",
   1598                 "nameConstraintsDN1CACRL.crl",
   1599         };
   1600 
   1601         assertValidPath(trustAnchor, certs, crls);
   1602     }
   1603 
   1604     /** NIST PKITS test 4.13.5 */
   1605     public void testKeyUsage_ValidDNnameConstraintsTest5() throws Exception {
   1606         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1607 
   1608         String[] certs = {
   1609                 "ValidDNnameConstraintsTest5EE.crt",
   1610                 "nameConstraintsDN2CACert.crt",
   1611         };
   1612 
   1613         String[] crls = {
   1614                 "TrustAnchorRootCRL.crl",
   1615                 "nameConstraintsDN2CACRL.crl",
   1616         };
   1617 
   1618         assertValidPath(trustAnchor, certs, crls);
   1619     }
   1620 
   1621     /** NIST PKITS test 4.13.6 */
   1622     public void testKeyUsage_ValidDNnameConstraintsTest6() throws Exception {
   1623         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1624 
   1625         String[] certs = {
   1626                 "ValidDNnameConstraintsTest6EE.crt",
   1627                 "nameConstraintsDN3CACert.crt",
   1628         };
   1629 
   1630         String[] crls = {
   1631                 "TrustAnchorRootCRL.crl",
   1632                 "nameConstraintsDN3CACRL.crl",
   1633         };
   1634 
   1635         assertValidPath(trustAnchor, certs, crls);
   1636     }
   1637 
   1638     /** NIST PKITS test 4.13.7 */
   1639     public void testKeyUsage_InvalidDNnameConstraintsTest7() throws Exception {
   1640         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1641 
   1642         String[] certs = {
   1643                 "InvalidDNnameConstraintsTest7EE.crt",
   1644                 "nameConstraintsDN3CACert.crt",
   1645         };
   1646 
   1647         String[] crls = {
   1648                 "TrustAnchorRootCRL.crl",
   1649                 "nameConstraintsDN3CACRL.crl",
   1650         };
   1651 
   1652         assertInvalidPath(trustAnchor, certs, crls);
   1653     }
   1654 
   1655     /** NIST PKITS test 4.13.8 */
   1656     public void testKeyUsage_InvalidDNnameConstraintsTest8() throws Exception {
   1657         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1658 
   1659         String[] certs = {
   1660                 "InvalidDNnameConstraintsTest8EE.crt",
   1661                 "nameConstraintsDN4CACert.crt",
   1662         };
   1663 
   1664         String[] crls = {
   1665                 "TrustAnchorRootCRL.crl",
   1666                 "nameConstraintsDN4CACRL.crl",
   1667         };
   1668 
   1669         assertInvalidPath(trustAnchor, certs, crls);
   1670     }
   1671 
   1672     /** NIST PKITS test 4.13.9 */
   1673     public void testKeyUsage_InvalidDNnameConstraintsTest9() throws Exception {
   1674         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1675 
   1676         String[] certs = {
   1677                 "InvalidDNnameConstraintsTest9EE.crt",
   1678                 "nameConstraintsDN4CACert.crt",
   1679         };
   1680 
   1681         String[] crls = {
   1682                 "TrustAnchorRootCRL.crl",
   1683                 "nameConstraintsDN4CACRL.crl",
   1684         };
   1685 
   1686         assertInvalidPath(trustAnchor, certs, crls);
   1687     }
   1688 
   1689     /** NIST PKITS test 4.13.10 */
   1690     public void testKeyUsage_InvalidDNnameConstraintsTest10() throws Exception {
   1691         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1692 
   1693         String[] certs = {
   1694                 "InvalidDNnameConstraintsTest10EE.crt",
   1695                 "nameConstraintsDN5CACert.crt",
   1696         };
   1697 
   1698         String[] crls = {
   1699                 "TrustAnchorRootCRL.crl",
   1700                 "nameConstraintsDN5CACRL.crl",
   1701         };
   1702 
   1703         assertInvalidPath(trustAnchor, certs, crls);
   1704     }
   1705 
   1706     /** NIST PKITS test 4.13.11 */
   1707     public void testKeyUsage_ValidDNnameConstraintsTest11() throws Exception {
   1708         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1709 
   1710         String[] certs = {
   1711                 "ValidDNnameConstraintsTest11EE.crt",
   1712                 "nameConstraintsDN5CACert.crt",
   1713         };
   1714 
   1715         String[] crls = {
   1716                 "TrustAnchorRootCRL.crl",
   1717                 "nameConstraintsDN5CACRL.crl",
   1718         };
   1719 
   1720         assertValidPath(trustAnchor, certs, crls);
   1721     }
   1722 
   1723     /** NIST PKITS test 4.13.12 */
   1724     public void testKeyUsage_InvalidDNnameConstraintsTest12() throws Exception {
   1725         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1726 
   1727         String[] certs = {
   1728                 "InvalidDNnameConstraintsTest12EE.crt",
   1729                 "nameConstraintsDN1subCA1Cert.crt",
   1730                 "nameConstraintsDN1CACert.crt",
   1731         };
   1732 
   1733         String[] crls = {
   1734                 "TrustAnchorRootCRL.crl",
   1735                 "nameConstraintsDN1CACRL.crl",
   1736                 "nameConstraintsDN1subCA1CRL.crl",
   1737         };
   1738 
   1739         assertInvalidPath(trustAnchor, certs, crls);
   1740     }
   1741 
   1742     /** NIST PKITS test 4.13.13 */
   1743     public void testKeyUsage_InvalidDNnameConstraintsTest13() throws Exception {
   1744         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1745 
   1746         String[] certs = {
   1747                 "InvalidDNnameConstraintsTest13EE.crt",
   1748                 "nameConstraintsDN1subCA2Cert.crt",
   1749                 "nameConstraintsDN1CACert.crt",
   1750         };
   1751 
   1752         String[] crls = {
   1753                 "TrustAnchorRootCRL.crl",
   1754                 "nameConstraintsDN1CACRL.crl",
   1755                 "nameConstraintsDN1subCA2CRL.crl",
   1756         };
   1757 
   1758         assertInvalidPath(trustAnchor, certs, crls);
   1759     }
   1760 
   1761     /** NIST PKITS test 4.13.14 */
   1762     public void testKeyUsage_ValidDNnameConstraintsTest14() throws Exception {
   1763         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1764 
   1765         String[] certs = {
   1766                 "ValidDNnameConstraintsTest14EE.crt",
   1767                 "nameConstraintsDN1subCA2Cert.crt",
   1768                 "nameConstraintsDN1CACert.crt",
   1769         };
   1770 
   1771         String[] crls = {
   1772                 "TrustAnchorRootCRL.crl",
   1773                 "nameConstraintsDN1CACRL.crl",
   1774                 "nameConstraintsDN1subCA2CRL.crl",
   1775         };
   1776 
   1777         assertValidPath(trustAnchor, certs, crls);
   1778     }
   1779 
   1780     /** NIST PKITS test 4.13.15 */
   1781     public void testKeyUsage_InvalidDNnameConstraintsTest15() throws Exception {
   1782         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1783 
   1784         String[] certs = {
   1785                 "InvalidDNnameConstraintsTest15EE.crt",
   1786                 "nameConstraintsDN3subCA1Cert.crt",
   1787                 "nameConstraintsDN3CACert.crt",
   1788         };
   1789 
   1790         String[] crls = {
   1791                 "TrustAnchorRootCRL.crl",
   1792                 "nameConstraintsDN3CACRL.crl",
   1793                 "nameConstraintsDN3subCA1CRL.crl",
   1794         };
   1795 
   1796         assertInvalidPath(trustAnchor, certs, crls);
   1797     }
   1798 
   1799     /** NIST PKITS test 4.13.16 */
   1800     public void testKeyUsage_InvalidDNnameConstraintsTest16() throws Exception {
   1801         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1802 
   1803         String[] certs = {
   1804                 "InvalidDNnameConstraintsTest16EE.crt",
   1805                 "nameConstraintsDN3subCA1Cert.crt",
   1806                 "nameConstraintsDN3CACert.crt",
   1807         };
   1808 
   1809         String[] crls = {
   1810                 "TrustAnchorRootCRL.crl",
   1811                 "nameConstraintsDN3CACRL.crl",
   1812                 "nameConstraintsDN3subCA1CRL.crl",
   1813         };
   1814 
   1815         assertInvalidPath(trustAnchor, certs, crls);
   1816     }
   1817 
   1818     /** NIST PKITS test 4.13.17 */
   1819     public void testKeyUsage_InvalidDNnameConstraintsTest17() throws Exception {
   1820         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1821 
   1822         String[] certs = {
   1823                 "InvalidDNnameConstraintsTest17EE.crt",
   1824                 "nameConstraintsDN3subCA2Cert.crt",
   1825                 "nameConstraintsDN3CACert.crt",
   1826         };
   1827 
   1828         String[] crls = {
   1829                 "TrustAnchorRootCRL.crl",
   1830                 "nameConstraintsDN3CACRL.crl",
   1831                 "nameConstraintsDN3subCA2CRL.crl",
   1832         };
   1833 
   1834         assertInvalidPath(trustAnchor, certs, crls);
   1835     }
   1836 
   1837     /** NIST PKITS test 4.13.18 */
   1838     public void testKeyUsage_ValidDNnameConstraintsTest18() throws Exception {
   1839         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1840 
   1841         String[] certs = {
   1842                 "ValidDNnameConstraintsTest18EE.crt",
   1843                 "nameConstraintsDN3subCA2Cert.crt",
   1844                 "nameConstraintsDN3CACert.crt",
   1845         };
   1846 
   1847         String[] crls = {
   1848                 "TrustAnchorRootCRL.crl",
   1849                 "nameConstraintsDN3CACRL.crl",
   1850                 "nameConstraintsDN3subCA2CRL.crl",
   1851         };
   1852 
   1853         assertValidPath(trustAnchor, certs, crls);
   1854     }
   1855 
   1856     /** NIST PKITS test 4.13.19 */
   1857     public void testKeyUsage_ValidSelfIssuedDNnameConstraintsTest19() throws Exception {
   1858         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1859 
   1860         String[] certs = {
   1861                 "ValidDNnameConstraintsTest19EE.crt",
   1862                 "nameConstraintsDN1SelfIssuedCACert.crt",
   1863                 "nameConstraintsDN1CACert.crt",
   1864         };
   1865 
   1866         String[] crls = {
   1867                 "TrustAnchorRootCRL.crl",
   1868                 "nameConstraintsDN1CACRL.crl",
   1869         };
   1870 
   1871         assertValidPath(trustAnchor, certs, crls);
   1872     }
   1873 
   1874     /** NIST PKITS test 4.13.20 */
   1875     public void testKeyUsage_InvalidSelfIssuedDNnameConstraintsTest20() throws Exception {
   1876         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1877 
   1878         String[] certs = {
   1879                 "InvalidDNnameConstraintsTest20EE.crt",
   1880                 "nameConstraintsDN1CACert.crt",
   1881         };
   1882 
   1883         String[] crls = {
   1884                 "TrustAnchorRootCRL.crl",
   1885                 "nameConstraintsDN1CACRL.crl",
   1886         };
   1887 
   1888         assertInvalidPath(trustAnchor, certs, crls);
   1889     }
   1890 
   1891     /** NIST PKITS test 4.13.21 */
   1892     public void testKeyUsage_ValidRFC822nameConstraintsTest21() throws Exception {
   1893         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1894 
   1895         String[] certs = {
   1896                 "ValidRFC822nameConstraintsTest21EE.crt",
   1897                 "nameConstraintsRFC822CA1Cert.crt",
   1898         };
   1899 
   1900         String[] crls = {
   1901                 "TrustAnchorRootCRL.crl",
   1902                 "nameConstraintsRFC822CA1CRL.crl",
   1903         };
   1904 
   1905         assertValidPath(trustAnchor, certs, crls);
   1906     }
   1907 
   1908     /** NIST PKITS test 4.13.22 */
   1909     public void testKeyUsage_InvalidRFC822nameConstraintsTest22() throws Exception {
   1910         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1911 
   1912         String[] certs = {
   1913                 "InvalidRFC822nameConstraintsTest22EE.crt",
   1914                 "nameConstraintsRFC822CA1Cert.crt",
   1915         };
   1916 
   1917         String[] crls = {
   1918                 "TrustAnchorRootCRL.crl",
   1919                 "nameConstraintsRFC822CA1CRL.crl",
   1920         };
   1921 
   1922         assertInvalidPath(trustAnchor, certs, crls);
   1923     }
   1924 
   1925     /** NIST PKITS test 4.13.23 */
   1926     public void testKeyUsage_ValidRFC822nameConstraintsTest23() throws Exception {
   1927         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1928 
   1929         String[] certs = {
   1930                 "ValidRFC822nameConstraintsTest23EE.crt",
   1931                 "nameConstraintsRFC822CA2Cert.crt",
   1932         };
   1933 
   1934         String[] crls = {
   1935                 "TrustAnchorRootCRL.crl",
   1936                 "nameConstraintsRFC822CA2CRL.crl",
   1937         };
   1938 
   1939         assertValidPath(trustAnchor, certs, crls);
   1940     }
   1941 
   1942     /** NIST PKITS test 4.13.24 */
   1943     public void testKeyUsage_InvalidRFC822nameConstraintsTest24() throws Exception {
   1944         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1945 
   1946         String[] certs = {
   1947                 "InvalidRFC822nameConstraintsTest24EE.crt",
   1948                 "nameConstraintsRFC822CA2Cert.crt",
   1949         };
   1950 
   1951         String[] crls = {
   1952                 "TrustAnchorRootCRL.crl",
   1953                 "nameConstraintsRFC822CA2CRL.crl",
   1954         };
   1955 
   1956         assertInvalidPath(trustAnchor, certs, crls);
   1957     }
   1958 
   1959     /** NIST PKITS test 4.13.25 */
   1960     public void testKeyUsage_ValidRFC822nameConstraintsTest25() throws Exception {
   1961         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1962 
   1963         String[] certs = {
   1964                 "ValidRFC822nameConstraintsTest25EE.crt",
   1965                 "nameConstraintsRFC822CA3Cert.crt",
   1966         };
   1967 
   1968         String[] crls = {
   1969                 "TrustAnchorRootCRL.crl",
   1970                 "nameConstraintsRFC822CA3CRL.crl",
   1971         };
   1972 
   1973         assertValidPath(trustAnchor, certs, crls);
   1974     }
   1975 
   1976     /** NIST PKITS test 4.13.26 */
   1977     public void testKeyUsage_InvalidRFC822nameConstraintsTest26() throws Exception {
   1978         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1979 
   1980         String[] certs = {
   1981                 "InvalidRFC822nameConstraintsTest26EE.crt",
   1982                 "nameConstraintsRFC822CA3Cert.crt",
   1983         };
   1984 
   1985         String[] crls = {
   1986                 "TrustAnchorRootCRL.crl",
   1987                 "nameConstraintsRFC822CA3CRL.crl",
   1988         };
   1989 
   1990         assertInvalidPath(trustAnchor, certs, crls);
   1991     }
   1992 
   1993     /** NIST PKITS test 4.13.27 */
   1994     public void testKeyUsage_ValidDNandRFC822nameConstraintsTest27() throws Exception {
   1995         String trustAnchor = "TrustAnchorRootCertificate.crt";
   1996 
   1997         String[] certs = {
   1998                 "ValidDNandRFC822nameConstraintsTest27EE.crt",
   1999                 "nameConstraintsDN1subCA3Cert.crt",
   2000                 "nameConstraintsDN1CACert.crt",
   2001         };
   2002 
   2003         String[] crls = {
   2004                 "TrustAnchorRootCRL.crl",
   2005                 "nameConstraintsDN1CACRL.crl",
   2006                 "nameConstraintsDN1subCA3CRL.crl",
   2007         };
   2008 
   2009         assertValidPath(trustAnchor, certs, crls);
   2010     }
   2011 
   2012     /** NIST PKITS test 4.13.28 */
   2013     public void testKeyUsage_InvalidDNandRFC822nameConstraintsTest28() throws Exception {
   2014         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2015 
   2016         String[] certs = {
   2017                 "InvalidDNandRFC822nameConstraintsTest28EE.crt",
   2018                 "nameConstraintsDN1subCA3Cert.crt",
   2019                 "nameConstraintsDN1CACert.crt",
   2020         };
   2021 
   2022         String[] crls = {
   2023                 "TrustAnchorRootCRL.crl",
   2024                 "nameConstraintsDN1CACRL.crl",
   2025                 "nameConstraintsDN1subCA3CRL.crl",
   2026         };
   2027 
   2028         assertInvalidPath(trustAnchor, certs, crls);
   2029     }
   2030 
   2031     /** NIST PKITS test 4.13.29 */
   2032     public void testKeyUsage_InvalidDNandRFC822nameConstraintsTest29() throws Exception {
   2033         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2034 
   2035         String[] certs = {
   2036                 "InvalidDNandRFC822nameConstraintsTest29EE.crt",
   2037                 "nameConstraintsDN1subCA3Cert.crt",
   2038                 "nameConstraintsDN1CACert.crt",
   2039         };
   2040 
   2041         String[] crls = {
   2042                 "TrustAnchorRootCRL.crl",
   2043                 "nameConstraintsDN1CACRL.crl",
   2044                 "nameConstraintsDN1subCA3CRL.crl",
   2045         };
   2046 
   2047         assertInvalidPath(trustAnchor, certs, crls);
   2048     }
   2049 
   2050     /** NIST PKITS test 4.13.30 */
   2051     public void testKeyUsage_ValidDNSnameConstraintsTest30() throws Exception {
   2052         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2053 
   2054         String[] certs = {
   2055                 "ValidDNSnameConstraintsTest30EE.crt",
   2056                 "nameConstraintsDNS1CACert.crt",
   2057         };
   2058 
   2059         String[] crls = {
   2060                 "TrustAnchorRootCRL.crl",
   2061                 "nameConstraintsDNS1CACRL.crl",
   2062         };
   2063 
   2064         assertValidPath(trustAnchor, certs, crls);
   2065     }
   2066 
   2067     /** NIST PKITS test 4.13.31 */
   2068     public void testKeyUsage_InvalidDNSnameConstraintsTest31() throws Exception {
   2069         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2070 
   2071         String[] certs = {
   2072                 "InvalidDNSnameConstraintsTest31EE.crt",
   2073                 "nameConstraintsDNS1CACert.crt",
   2074         };
   2075 
   2076         String[] crls = {
   2077                 "TrustAnchorRootCRL.crl",
   2078                 "nameConstraintsDNS1CACRL.crl",
   2079         };
   2080 
   2081         assertInvalidPath(trustAnchor, certs, crls);
   2082     }
   2083 
   2084     /** NIST PKITS test 4.13.32 */
   2085     public void testKeyUsage_ValidDNSnameConstraintsTest32() throws Exception {
   2086         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2087 
   2088         String[] certs = {
   2089                 "ValidDNSnameConstraintsTest32EE.crt",
   2090                 "nameConstraintsDNS2CACert.crt",
   2091         };
   2092 
   2093         String[] crls = {
   2094                 "TrustAnchorRootCRL.crl",
   2095                 "nameConstraintsDNS2CACRL.crl",
   2096         };
   2097 
   2098         assertValidPath(trustAnchor, certs, crls);
   2099     }
   2100 
   2101     /** NIST PKITS test 4.13.33 */
   2102     public void testKeyUsage_InvalidDNSnameConstraintsTest33() throws Exception {
   2103         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2104 
   2105         String[] certs = {
   2106                 "InvalidDNSnameConstraintsTest33EE.crt",
   2107                 "nameConstraintsDNS2CACert.crt",
   2108         };
   2109 
   2110         String[] crls = {
   2111                 "TrustAnchorRootCRL.crl",
   2112                 "nameConstraintsDNS2CACRL.crl",
   2113         };
   2114 
   2115         assertInvalidPath(trustAnchor, certs, crls);
   2116     }
   2117 
   2118     /** NIST PKITS test 4.13.34 */
   2119     public void testKeyUsage_ValidURInameConstraintsTest34() throws Exception {
   2120         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2121 
   2122         String[] certs = {
   2123                 "ValidURInameConstraintsTest34EE.crt",
   2124                 "nameConstraintsURI1CACert.crt",
   2125         };
   2126 
   2127         String[] crls = {
   2128                 "TrustAnchorRootCRL.crl",
   2129                 "nameConstraintsURI1CACRL.crl",
   2130         };
   2131 
   2132         assertValidPath(trustAnchor, certs, crls);
   2133     }
   2134 
   2135     /** NIST PKITS test 4.13.35 */
   2136     public void testKeyUsage_InvalidURInameConstraintsTest35() throws Exception {
   2137         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2138 
   2139         String[] certs = {
   2140                 "InvalidURInameConstraintsTest35EE.crt",
   2141                 "nameConstraintsURI1CACert.crt",
   2142         };
   2143 
   2144         String[] crls = {
   2145                 "TrustAnchorRootCRL.crl",
   2146                 "nameConstraintsURI1CACRL.crl",
   2147         };
   2148 
   2149         assertInvalidPath(trustAnchor, certs, crls);
   2150     }
   2151 
   2152     /** NIST PKITS test 4.13.36 */
   2153     public void testKeyUsage_ValidURInameConstraintsTest36() throws Exception {
   2154         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2155 
   2156         String[] certs = {
   2157                 "ValidURInameConstraintsTest36EE.crt",
   2158                 "nameConstraintsURI2CACert.crt",
   2159         };
   2160 
   2161         String[] crls = {
   2162                 "TrustAnchorRootCRL.crl",
   2163                 "nameConstraintsURI2CACRL.crl",
   2164         };
   2165 
   2166         assertValidPath(trustAnchor, certs, crls);
   2167     }
   2168 
   2169     /** NIST PKITS test 4.13.37 */
   2170     public void testKeyUsage_InvalidURInameConstraintsTest37() throws Exception {
   2171         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2172 
   2173         String[] certs = {
   2174                 "InvalidURInameConstraintsTest37EE.crt",
   2175                 "nameConstraintsURI2CACert.crt",
   2176         };
   2177 
   2178         String[] crls = {
   2179                 "TrustAnchorRootCRL.crl",
   2180                 "nameConstraintsURI2CACRL.crl",
   2181         };
   2182 
   2183         assertInvalidPath(trustAnchor, certs, crls);
   2184     }
   2185 
   2186     /** NIST PKITS test 4.13.38 */
   2187     public void testKeyUsage_InvalidDNSnameConstraintsTest38() throws Exception {
   2188         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2189 
   2190         String[] certs = {
   2191                 "InvalidDNSnameConstraintsTest38EE.crt",
   2192                 "nameConstraintsDNS1CACert.crt",
   2193         };
   2194 
   2195         String[] crls = {
   2196                 "TrustAnchorRootCRL.crl",
   2197                 "nameConstraintsDNS1CACRL.crl",
   2198         };
   2199 
   2200         assertInvalidPath(trustAnchor, certs, crls);
   2201     }
   2202 
   2203     /** NIST PKITS test 4.14.1 */
   2204     public void testDistributionPoints_ValiddistributionPointTest1() throws Exception {
   2205         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2206 
   2207         String[] certs = {
   2208                 "ValiddistributionPointTest1EE.crt",
   2209                 "distributionPoint1CACert.crt",
   2210         };
   2211 
   2212         String[] crls = {
   2213                 "TrustAnchorRootCRL.crl",
   2214                 "distributionPoint1CACRL.crl",
   2215         };
   2216 
   2217         assertValidPath(trustAnchor, certs, crls);
   2218     }
   2219 
   2220     /** NIST PKITS test 4.14.2 */
   2221     public void testDistributionPoints_InvaliddistributionPointTest2() throws Exception {
   2222         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2223 
   2224         String[] certs = {
   2225                 "InvaliddistributionPointTest2EE.crt",
   2226                 "distributionPoint1CACert.crt",
   2227         };
   2228 
   2229         String[] crls = {
   2230                 "TrustAnchorRootCRL.crl",
   2231                 "distributionPoint1CACRL.crl",
   2232         };
   2233 
   2234         assertInvalidPath(trustAnchor, certs, crls);
   2235     }
   2236 
   2237     /** NIST PKITS test 4.14.3 */
   2238     public void testDistributionPoints_InvaliddistributionPointTest3() throws Exception {
   2239         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2240 
   2241         String[] certs = {
   2242                 "InvaliddistributionPointTest3EE.crt",
   2243                 "distributionPoint1CACert.crt",
   2244         };
   2245 
   2246         String[] crls = {
   2247                 "TrustAnchorRootCRL.crl",
   2248                 "distributionPoint1CACRL.crl",
   2249         };
   2250 
   2251         assertInvalidPath(trustAnchor, certs, crls);
   2252     }
   2253 
   2254     /** NIST PKITS test 4.14.4 */
   2255     public void testDistributionPoints_ValiddistributionPointTest4() throws Exception {
   2256         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2257 
   2258         String[] certs = {
   2259                 "ValiddistributionPointTest4EE.crt",
   2260                 "distributionPoint1CACert.crt",
   2261         };
   2262 
   2263         String[] crls = {
   2264                 "TrustAnchorRootCRL.crl",
   2265                 "distributionPoint1CACRL.crl",
   2266         };
   2267 
   2268         assertValidPath(trustAnchor, certs, crls);
   2269     }
   2270 
   2271     /** NIST PKITS test 4.14.5 */
   2272     public void testDistributionPoints_ValiddistributionPointTest5() throws Exception {
   2273         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2274 
   2275         String[] certs = {
   2276                 "ValiddistributionPointTest5EE.crt",
   2277                 "distributionPoint2CACert.crt",
   2278         };
   2279 
   2280         String[] crls = {
   2281                 "TrustAnchorRootCRL.crl",
   2282                 "distributionPoint2CACRL.crl",
   2283         };
   2284 
   2285         assertValidPath(trustAnchor, certs, crls);
   2286     }
   2287 
   2288     /** NIST PKITS test 4.14.6 */
   2289     public void testDistributionPoints_InvaliddistributionPointTest6() throws Exception {
   2290         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2291 
   2292         String[] certs = {
   2293                 "InvaliddistributionPointTest6EE.crt",
   2294                 "distributionPoint2CACert.crt",
   2295         };
   2296 
   2297         String[] crls = {
   2298                 "TrustAnchorRootCRL.crl",
   2299                 "distributionPoint2CACRL.crl",
   2300         };
   2301 
   2302         assertInvalidPath(trustAnchor, certs, crls);
   2303     }
   2304 
   2305     /** NIST PKITS test 4.14.7 */
   2306     public void testDistributionPoints_ValiddistributionPointTest7() throws Exception {
   2307         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2308 
   2309         String[] certs = {
   2310                 "ValiddistributionPointTest7EE.crt",
   2311                 "distributionPoint2CACert.crt",
   2312         };
   2313 
   2314         String[] crls = {
   2315                 "TrustAnchorRootCRL.crl",
   2316                 "distributionPoint2CACRL.crl",
   2317         };
   2318 
   2319         assertValidPath(trustAnchor, certs, crls);
   2320     }
   2321 
   2322     /** NIST PKITS test 4.14.8 */
   2323     public void testDistributionPoints_InvaliddistributionPointTest8() throws Exception {
   2324         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2325 
   2326         String[] certs = {
   2327                 "InvaliddistributionPointTest8EE.crt",
   2328                 "distributionPoint2CACert.crt",
   2329         };
   2330 
   2331         String[] crls = {
   2332                 "TrustAnchorRootCRL.crl",
   2333                 "distributionPoint2CACRL.crl",
   2334         };
   2335 
   2336         assertInvalidPath(trustAnchor, certs, crls);
   2337     }
   2338 
   2339     /** NIST PKITS test 4.14.9 */
   2340     public void testDistributionPoints_InvaliddistributionPointTest9() throws Exception {
   2341         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2342 
   2343         String[] certs = {
   2344                 "InvaliddistributionPointTest9EE.crt",
   2345                 "distributionPoint2CACert.crt",
   2346         };
   2347 
   2348         String[] crls = {
   2349                 "TrustAnchorRootCRL.crl",
   2350                 "distributionPoint2CACRL.crl",
   2351         };
   2352 
   2353         assertInvalidPath(trustAnchor, certs, crls);
   2354     }
   2355 
   2356     /** NIST PKITS test 4.14.10 */
   2357     public void testDistributionPoints_ValidNoissuingDistributionPointTest10() throws Exception {
   2358         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2359 
   2360         String[] certs = {
   2361                 "ValidNoissuingDistributionPointTest10EE.crt",
   2362                 "NoissuingDistributionPointCACert.crt",
   2363         };
   2364 
   2365         String[] crls = {
   2366                 "TrustAnchorRootCRL.crl",
   2367                 "NoissuingDistributionPointCACRL.crl",
   2368         };
   2369 
   2370         assertValidPath(trustAnchor, certs, crls);
   2371     }
   2372 
   2373     /** NIST PKITS test 4.14.11 */
   2374     public void testDistributionPoints_InvalidonlyContainsUserCertsCRLTest11() throws Exception {
   2375         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2376 
   2377         String[] certs = {
   2378                 "InvalidonlyContainsUserCertsTest11EE.crt",
   2379                 "onlyContainsUserCertsCACert.crt",
   2380         };
   2381 
   2382         String[] crls = {
   2383                 "TrustAnchorRootCRL.crl",
   2384                 "onlyContainsUserCertsCACRL.crl",
   2385         };
   2386 
   2387         assertInvalidPath(trustAnchor, certs, crls);
   2388     }
   2389 
   2390     /** NIST PKITS test 4.14.12 */
   2391     public void testDistributionPoints_InvalidonlyContainsCACertsCRLTest12() throws Exception {
   2392         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2393 
   2394         String[] certs = {
   2395                 "InvalidonlyContainsCACertsTest12EE.crt",
   2396                 "onlyContainsCACertsCACert.crt",
   2397         };
   2398 
   2399         String[] crls = {
   2400                 "TrustAnchorRootCRL.crl",
   2401                 "onlyContainsCACertsCACRL.crl",
   2402         };
   2403 
   2404         assertInvalidPath(trustAnchor, certs, crls);
   2405     }
   2406 
   2407     /** NIST PKITS test 4.14.13 */
   2408     public void testDistributionPoints_ValidonlyContainsCACertsCRLTest13() throws Exception {
   2409         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2410 
   2411         String[] certs = {
   2412                 "ValidonlyContainsCACertsTest13EE.crt",
   2413                 "onlyContainsCACertsCACert.crt",
   2414         };
   2415 
   2416         String[] crls = {
   2417                 "TrustAnchorRootCRL.crl",
   2418                 "onlyContainsCACertsCACRL.crl",
   2419         };
   2420 
   2421         assertValidPath(trustAnchor, certs, crls);
   2422     }
   2423 
   2424     /** NIST PKITS test 4.14.14 */
   2425     public void testDistributionPoints_InvalidonlyContainsAttributeCertsTest14() throws Exception {
   2426         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2427 
   2428         String[] certs = {
   2429                 "InvalidonlyContainsAttributeCertsTest14EE.crt",
   2430                 "onlyContainsAttributeCertsCACert.crt",
   2431         };
   2432 
   2433         String[] crls = {
   2434                 "TrustAnchorRootCRL.crl",
   2435                 "onlyContainsAttributeCertsCACRL.crl",
   2436         };
   2437 
   2438         assertInvalidPath(trustAnchor, certs, crls);
   2439     }
   2440 
   2441     /** NIST PKITS test 4.14.15 */
   2442     public void testDistributionPoints_InvalidonlySomeReasonsTest15() throws Exception {
   2443         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2444 
   2445         String[] certs = {
   2446                 "InvalidonlySomeReasonsTest15EE.crt",
   2447                 "onlySomeReasonsCA1Cert.crt",
   2448         };
   2449 
   2450         String[] crls = {
   2451                 "TrustAnchorRootCRL.crl",
   2452                 "onlySomeReasonsCA1compromiseCRL.crl",
   2453                 "onlySomeReasonsCA1otherreasonsCRL.crl",
   2454         };
   2455 
   2456         assertInvalidPath(trustAnchor, certs, crls);
   2457     }
   2458 
   2459     /** NIST PKITS test 4.14.16 */
   2460     public void testDistributionPoints_InvalidonlySomeReasonsTest16() throws Exception {
   2461         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2462 
   2463         String[] certs = {
   2464                 "InvalidonlySomeReasonsTest16EE.crt",
   2465                 "onlySomeReasonsCA1Cert.crt",
   2466         };
   2467 
   2468         String[] crls = {
   2469                 "TrustAnchorRootCRL.crl",
   2470                 "onlySomeReasonsCA1compromiseCRL.crl",
   2471                 "onlySomeReasonsCA1otherreasonsCRL.crl",
   2472         };
   2473 
   2474         assertInvalidPath(trustAnchor, certs, crls);
   2475     }
   2476 
   2477     /** NIST PKITS test 4.14.17 */
   2478     public void testDistributionPoints_InvalidonlySomeReasonsTest17() throws Exception {
   2479         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2480 
   2481         String[] certs = {
   2482                 "InvalidonlySomeReasonsTest17EE.crt",
   2483                 "onlySomeReasonsCA2Cert.crt",
   2484         };
   2485 
   2486         String[] crls = {
   2487                 "TrustAnchorRootCRL.crl",
   2488                 "onlySomeReasonsCA2CRL1.crl",
   2489                 "onlySomeReasonsCA2CRL2.crl",
   2490         };
   2491 
   2492         assertInvalidPath(trustAnchor, certs, crls);
   2493     }
   2494 
   2495     /** NIST PKITS test 4.14.18 */
   2496     public void testDistributionPoints_ValidonlySomeReasonsTest18() throws Exception {
   2497         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2498 
   2499         String[] certs = {
   2500                 "ValidonlySomeReasonsTest18EE.crt",
   2501                 "onlySomeReasonsCA3Cert.crt",
   2502         };
   2503 
   2504         String[] crls = {
   2505                 "TrustAnchorRootCRL.crl",
   2506                 "onlySomeReasonsCA3compromiseCRL.crl",
   2507                 "onlySomeReasonsCA3otherreasonsCRL.crl",
   2508         };
   2509 
   2510         assertValidPath(trustAnchor, certs, crls);
   2511     }
   2512 
   2513     /** NIST PKITS test 4.14.19 */
   2514     public void testDistributionPoints_ValidonlySomeReasonsTest19() throws Exception {
   2515         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2516 
   2517         String[] certs = {
   2518                 "ValidonlySomeReasonsTest19EE.crt",
   2519                 "onlySomeReasonsCA4Cert.crt",
   2520         };
   2521 
   2522         String[] crls = {
   2523                 "TrustAnchorRootCRL.crl",
   2524                 "onlySomeReasonsCA4compromiseCRL.crl",
   2525                 "onlySomeReasonsCA4otherreasonsCRL.crl",
   2526         };
   2527 
   2528         assertValidPath(trustAnchor, certs, crls);
   2529     }
   2530 
   2531     /** NIST PKITS test 4.14.20 */
   2532     public void testDistributionPoints_InvalidonlySomeReasonsTest20() throws Exception {
   2533         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2534 
   2535         String[] certs = {
   2536                 "InvalidonlySomeReasonsTest20EE.crt",
   2537                 "onlySomeReasonsCA4Cert.crt",
   2538         };
   2539 
   2540         String[] crls = {
   2541                 "TrustAnchorRootCRL.crl",
   2542                 "onlySomeReasonsCA4compromiseCRL.crl",
   2543                 "onlySomeReasonsCA4otherreasonsCRL.crl",
   2544         };
   2545 
   2546         assertInvalidPath(trustAnchor, certs, crls);
   2547     }
   2548 
   2549     /** NIST PKITS test 4.14.21 */
   2550     public void testDistributionPoints_InvalidonlySomeReasonsTest21() throws Exception {
   2551         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2552 
   2553         String[] certs = {
   2554                 "InvalidonlySomeReasonsTest21EE.crt",
   2555                 "onlySomeReasonsCA4Cert.crt",
   2556         };
   2557 
   2558         String[] crls = {
   2559                 "TrustAnchorRootCRL.crl",
   2560                 "onlySomeReasonsCA4compromiseCRL.crl",
   2561                 "onlySomeReasonsCA4otherreasonsCRL.crl",
   2562         };
   2563 
   2564         assertInvalidPath(trustAnchor, certs, crls);
   2565     }
   2566 
   2567     /** NIST PKITS test 4.14.22 */
   2568     public void testDistributionPoints_ValidIDPwithindirectCRLTest22() throws Exception {
   2569         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2570 
   2571         String[] certs = {
   2572                 "ValidIDPwithindirectCRLTest22EE.crt",
   2573                 "indirectCRLCA1Cert.crt",
   2574         };
   2575 
   2576         String[] crls = {
   2577                 "TrustAnchorRootCRL.crl",
   2578                 "indirectCRLCA1CRL.crl",
   2579         };
   2580 
   2581         assertValidPath(trustAnchor, certs, crls);
   2582     }
   2583 
   2584     /** NIST PKITS test 4.14.23 */
   2585     public void testDistributionPoints_InvalidIDPwithindirectCRLTest23() throws Exception {
   2586         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2587 
   2588         String[] certs = {
   2589                 "InvalidIDPwithindirectCRLTest23EE.crt",
   2590                 "indirectCRLCA1Cert.crt",
   2591         };
   2592 
   2593         String[] crls = {
   2594                 "TrustAnchorRootCRL.crl",
   2595                 "indirectCRLCA1CRL.crl",
   2596         };
   2597 
   2598         assertInvalidPath(trustAnchor, certs, crls);
   2599     }
   2600 
   2601     /** NIST PKITS test 4.14.24 */
   2602     public void testDistributionPoints_ValidIDPwithindirectCRLTest24() throws Exception {
   2603         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2604 
   2605         String[] certs = {
   2606                 "ValidIDPwithindirectCRLTest24EE.crt",
   2607                 "indirectCRLCA1Cert.crt",
   2608                 "indirectCRLCA2Cert.crt",
   2609         };
   2610 
   2611         String[] crls = {
   2612                 "TrustAnchorRootCRL.crl",
   2613                 "indirectCRLCA1CRL.crl",
   2614         };
   2615 
   2616         assertValidPath(trustAnchor, certs, crls);
   2617     }
   2618 
   2619     /** NIST PKITS test 4.14.25 */
   2620     public void testDistributionPoints_ValidIDPwithindirectCRLTest25() throws Exception {
   2621         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2622 
   2623         String[] certs = {
   2624                 "ValidIDPwithindirectCRLTest25EE.crt",
   2625                 "indirectCRLCA1Cert.crt",
   2626                 "indirectCRLCA2Cert.crt",
   2627         };
   2628 
   2629         String[] crls = {
   2630                 "TrustAnchorRootCRL.crl",
   2631                 "indirectCRLCA1CRL.crl",
   2632         };
   2633 
   2634         assertValidPath(trustAnchor, certs, crls);
   2635     }
   2636 
   2637     /** NIST PKITS test 4.14.26 */
   2638     public void testDistributionPoints_InvalidIDPwithindirectCRLTest26() throws Exception {
   2639         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2640 
   2641         String[] certs = {
   2642                 "InvalidIDPwithindirectCRLTest26EE.crt",
   2643                 "indirectCRLCA1Cert.crt",
   2644                 "indirectCRLCA2Cert.crt",
   2645         };
   2646 
   2647         String[] crls = {
   2648                 "TrustAnchorRootCRL.crl",
   2649                 "indirectCRLCA1CRL.crl",
   2650         };
   2651 
   2652         assertInvalidPath(trustAnchor, certs, crls);
   2653     }
   2654 
   2655     /** NIST PKITS test 4.14.27 */
   2656     public void testDistributionPoints_InvalidcRLIssuerTest27() throws Exception {
   2657         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2658 
   2659         String[] certs = {
   2660                 "InvalidcRLIssuerTest27EE.crt",
   2661                 "GoodCACert.crt",
   2662                 "indirectCRLCA2Cert.crt",
   2663         };
   2664 
   2665         String[] crls = {
   2666                 "TrustAnchorRootCRL.crl",
   2667                 "GoodCACRL.crl",
   2668         };
   2669 
   2670         assertInvalidPath(trustAnchor, certs, crls);
   2671     }
   2672 
   2673     /** NIST PKITS test 4.14.28 */
   2674     public void testDistributionPoints_ValidcRLIssuerTest28() throws Exception {
   2675         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2676 
   2677         String[] certs = {
   2678                 "ValidcRLIssuerTest28EE.crt",
   2679                 "indirectCRLCA3cRLIssuerCert.crt",
   2680                 "indirectCRLCA3Cert.crt",
   2681         };
   2682 
   2683         String[] crls = {
   2684                 "TrustAnchorRootCRL.crl",
   2685                 "indirectCRLCA3CRL.crl",
   2686                 "indirectCRLCA3cRLIssuerCRL.crl",
   2687         };
   2688 
   2689         assertValidPath(trustAnchor, certs, crls);
   2690     }
   2691 
   2692     /** NIST PKITS test 4.14.29 */
   2693     public void testDistributionPoints_ValidcRLIssuerTest29() throws Exception {
   2694         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2695 
   2696         String[] certs = {
   2697                 "ValidcRLIssuerTest29EE.crt",
   2698                 "indirectCRLCA3cRLIssuerCert.crt",
   2699                 "indirectCRLCA3Cert.crt",
   2700         };
   2701 
   2702         String[] crls = {
   2703                 "TrustAnchorRootCRL.crl",
   2704                 "indirectCRLCA3CRL.crl",
   2705                 "indirectCRLCA3cRLIssuerCRL.crl",
   2706         };
   2707 
   2708         assertValidPath(trustAnchor, certs, crls);
   2709     }
   2710 
   2711     /** NIST PKITS test 4.14.30 */
   2712     public void testDistributionPoints_ValidcRLIssuerTest30() throws Exception {
   2713         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2714 
   2715         String[] certs = {
   2716                 "ValidcRLIssuerTest30EE.crt",
   2717                 "indirectCRLCA4cRLIssuerCert.crt",
   2718                 "indirectCRLCA4Cert.crt",
   2719         };
   2720 
   2721         String[] crls = {
   2722                 "TrustAnchorRootCRL.crl",
   2723                 "indirectCRLCA4cRLIssuerCRL.crl",
   2724         };
   2725 
   2726         assertValidPath(trustAnchor, certs, crls);
   2727     }
   2728 
   2729     /** NIST PKITS test 4.14.31 */
   2730     public void testDistributionPoints_InvalidcRLIssuerTest31() throws Exception {
   2731         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2732 
   2733         String[] certs = {
   2734                 "InvalidcRLIssuerTest31EE.crt",
   2735                 "indirectCRLCA6Cert.crt",
   2736                 "indirectCRLCA5Cert.crt",
   2737         };
   2738 
   2739         String[] crls = {
   2740                 "TrustAnchorRootCRL.crl",
   2741                 "indirectCRLCA5CRL.crl",
   2742         };
   2743 
   2744         assertInvalidPath(trustAnchor, certs, crls);
   2745     }
   2746 
   2747     /** NIST PKITS test 4.14.32 */
   2748     public void testDistributionPoints_InvalidcRLIssuerTest32() throws Exception {
   2749         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2750 
   2751         String[] certs = {
   2752                 "InvalidcRLIssuerTest32EE.crt",
   2753                 "indirectCRLCA6Cert.crt",
   2754                 "indirectCRLCA5Cert.crt",
   2755         };
   2756 
   2757         String[] crls = {
   2758                 "TrustAnchorRootCRL.crl",
   2759                 "indirectCRLCA5CRL.crl",
   2760         };
   2761 
   2762         assertInvalidPath(trustAnchor, certs, crls);
   2763     }
   2764 
   2765     /** NIST PKITS test 4.14.33 */
   2766     public void testDistributionPoints_ValidcRLIssuerTest33() throws Exception {
   2767         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2768 
   2769         String[] certs = {
   2770                 "ValidcRLIssuerTest33EE.crt",
   2771                 "indirectCRLCA6Cert.crt",
   2772                 "indirectCRLCA5Cert.crt",
   2773         };
   2774 
   2775         String[] crls = {
   2776                 "TrustAnchorRootCRL.crl",
   2777                 "indirectCRLCA5CRL.crl",
   2778         };
   2779 
   2780         assertValidPath(trustAnchor, certs, crls);
   2781     }
   2782 
   2783     /** NIST PKITS test 4.14.34 */
   2784     public void testDistributionPoints_InvalidcRLIssuerTest34() throws Exception {
   2785         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2786 
   2787         String[] certs = {
   2788                 "InvalidcRLIssuerTest34EE.crt",
   2789                 "indirectCRLCA5Cert.crt",
   2790         };
   2791 
   2792         String[] crls = {
   2793                 "TrustAnchorRootCRL.crl",
   2794                 "indirectCRLCA5CRL.crl",
   2795         };
   2796 
   2797         assertInvalidPath(trustAnchor, certs, crls);
   2798     }
   2799 
   2800     /** NIST PKITS test 4.14.35 */
   2801     public void testDistributionPoints_InvalidcRLIssuerTest35() throws Exception {
   2802         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2803 
   2804         String[] certs = {
   2805                 "InvalidcRLIssuerTest35EE.crt",
   2806                 "indirectCRLCA5Cert.crt",
   2807         };
   2808 
   2809         String[] crls = {
   2810                 "TrustAnchorRootCRL.crl",
   2811                 "indirectCRLCA5CRL.crl",
   2812         };
   2813 
   2814         assertInvalidPath(trustAnchor, certs, crls);
   2815     }
   2816 
   2817     /** NIST PKITS test 4.15.1 */
   2818     public void testDeltaCRLs_InvaliddeltaCRLIndicatorNoBaseTest1() throws Exception {
   2819         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2820 
   2821         String[] certs = {
   2822                 "InvaliddeltaCRLIndicatorNoBaseTest1EE.crt",
   2823                 "deltaCRLIndicatorNoBaseCACert.crt",
   2824         };
   2825 
   2826         String[] crls = {
   2827                 "TrustAnchorRootCRL.crl",
   2828                 "deltaCRLIndicatorNoBaseCACRL.crl",
   2829         };
   2830 
   2831         assertInvalidPath(trustAnchor, certs, crls);
   2832     }
   2833 
   2834     /** NIST PKITS test 4.15.2 */
   2835     public void testDeltaCRLs_ValiddeltaCRLTest2() throws Exception {
   2836         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2837 
   2838         String[] certs = {
   2839                 "ValiddeltaCRLTest2EE.crt",
   2840                 "deltaCRLCA1Cert.crt",
   2841         };
   2842 
   2843         String[] crls = {
   2844                 "TrustAnchorRootCRL.crl",
   2845                 "deltaCRLCA1CRL.crl",
   2846                 "deltaCRLCA1deltaCRL.crl",
   2847         };
   2848 
   2849         assertValidPath(trustAnchor, certs, crls);
   2850     }
   2851 
   2852     /** NIST PKITS test 4.15.3 */
   2853     public void testDeltaCRLs_InvaliddeltaCRLTest3() throws Exception {
   2854         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2855 
   2856         String[] certs = {
   2857                 "InvaliddeltaCRLTest3EE.crt",
   2858                 "deltaCRLCA1Cert.crt",
   2859         };
   2860 
   2861         String[] crls = {
   2862                 "TrustAnchorRootCRL.crl",
   2863                 "deltaCRLCA1CRL.crl",
   2864                 "deltaCRLCA1deltaCRL.crl",
   2865         };
   2866 
   2867         assertInvalidPath(trustAnchor, certs, crls);
   2868     }
   2869 
   2870     /** NIST PKITS test 4.15.4 */
   2871     public void testDeltaCRLs_InvaliddeltaCRLTest4() throws Exception {
   2872         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2873 
   2874         String[] certs = {
   2875                 "InvaliddeltaCRLTest4EE.crt",
   2876                 "deltaCRLCA1Cert.crt",
   2877         };
   2878 
   2879         String[] crls = {
   2880                 "TrustAnchorRootCRL.crl",
   2881                 "deltaCRLCA1CRL.crl",
   2882                 "deltaCRLCA1deltaCRL.crl",
   2883         };
   2884 
   2885         assertInvalidPath(trustAnchor, certs, crls);
   2886     }
   2887 
   2888     /** NIST PKITS test 4.15.5 */
   2889     public void testDeltaCRLs_ValiddeltaCRLTest5() throws Exception {
   2890         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2891 
   2892         String[] certs = {
   2893                 "ValiddeltaCRLTest5EE.crt",
   2894                 "deltaCRLCA1Cert.crt",
   2895         };
   2896 
   2897         String[] crls = {
   2898                 "TrustAnchorRootCRL.crl",
   2899                 "deltaCRLCA1CRL.crl",
   2900                 "deltaCRLCA1deltaCRL.crl",
   2901         };
   2902 
   2903         assertValidPath(trustAnchor, certs, crls);
   2904     }
   2905 
   2906     /** NIST PKITS test 4.15.6 */
   2907     public void testDeltaCRLs_InvaliddeltaCRLTest6() throws Exception {
   2908         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2909 
   2910         String[] certs = {
   2911                 "InvaliddeltaCRLTest6EE.crt",
   2912                 "deltaCRLCA1Cert.crt",
   2913         };
   2914 
   2915         String[] crls = {
   2916                 "TrustAnchorRootCRL.crl",
   2917                 "deltaCRLCA1CRL.crl",
   2918                 "deltaCRLCA1deltaCRL.crl",
   2919         };
   2920 
   2921         assertInvalidPath(trustAnchor, certs, crls);
   2922     }
   2923 
   2924     /** NIST PKITS test 4.15.7 */
   2925     public void testDeltaCRLs_ValiddeltaCRLTest7() throws Exception {
   2926         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2927 
   2928         String[] certs = {
   2929                 "ValiddeltaCRLTest7EE.crt",
   2930                 "deltaCRLCA1Cert.crt",
   2931         };
   2932 
   2933         String[] crls = {
   2934                 "TrustAnchorRootCRL.crl",
   2935                 "deltaCRLCA1CRL.crl",
   2936                 "deltaCRLCA1deltaCRL.crl",
   2937         };
   2938 
   2939         assertValidPath(trustAnchor, certs, crls);
   2940     }
   2941 
   2942     /** NIST PKITS test 4.15.8 */
   2943     public void testDeltaCRLs_ValiddeltaCRLTest8() throws Exception {
   2944         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2945 
   2946         String[] certs = {
   2947                 "ValiddeltaCRLTest8EE.crt",
   2948                 "deltaCRLCA2Cert.crt",
   2949         };
   2950 
   2951         String[] crls = {
   2952                 "TrustAnchorRootCRL.crl",
   2953                 "deltaCRLCA2CRL.crl",
   2954                 "deltaCRLCA2deltaCRL.crl",
   2955         };
   2956 
   2957         assertValidPath(trustAnchor, certs, crls);
   2958     }
   2959 
   2960     /** NIST PKITS test 4.15.9 */
   2961     public void testDeltaCRLs_InvaliddeltaCRLTest9() throws Exception {
   2962         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2963 
   2964         String[] certs = {
   2965                 "InvaliddeltaCRLTest9EE.crt",
   2966                 "deltaCRLCA2Cert.crt",
   2967         };
   2968 
   2969         String[] crls = {
   2970                 "TrustAnchorRootCRL.crl",
   2971                 "deltaCRLCA2CRL.crl",
   2972                 "deltaCRLCA2deltaCRL.crl",
   2973         };
   2974 
   2975         assertInvalidPath(trustAnchor, certs, crls);
   2976     }
   2977 
   2978     /** NIST PKITS test 4.15.10 */
   2979     public void testDeltaCRLs_InvaliddeltaCRLTest10() throws Exception {
   2980         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2981 
   2982         String[] certs = {
   2983                 "InvaliddeltaCRLTest10EE.crt",
   2984                 "deltaCRLCA3Cert.crt",
   2985         };
   2986 
   2987         String[] crls = {
   2988                 "TrustAnchorRootCRL.crl",
   2989                 "deltaCRLCA3CRL.crl",
   2990                 "deltaCRLCA3deltaCRL.crl",
   2991         };
   2992 
   2993         assertInvalidPath(trustAnchor, certs, crls);
   2994     }
   2995 
   2996     /** NIST PKITS test 4.16.1 */
   2997     public void testPrivateCertificateExtensions_ValidUnknownNotCriticalCertificateExtensionTest1() throws Exception {
   2998         String trustAnchor = "TrustAnchorRootCertificate.crt";
   2999 
   3000         String[] certs = {
   3001                 "ValidUnknownNotCriticalCertificateExtensionTest1EE.crt",
   3002         };
   3003 
   3004         String[] crls = {
   3005                 "TrustAnchorRootCRL.crl",
   3006         };
   3007 
   3008         assertValidPath(trustAnchor, certs, crls);
   3009     }
   3010 
   3011     /* DO NOT MANUALLY EDIT -- END AUTOMATICALLY GENERATED TESTS */
   3012 }
   3013