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 
getStream(String name)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 
getCertificate(CertificateFactory f, String name)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 
getCertificates(CertificateFactory f, String[] names)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 
getCRL(CertificateFactory f, String name)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 
getCRLs(CertificateFactory f, String[] names)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 
getTestPath(CertificateFactory f, String[] pathCerts)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 
getTestPathParams(CertificateFactory f, String trustedCAName, String[] pathCerts, String[] pathCRLs)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 
assertInvalidPath(String trustAnchor, String[] certs, String[] crls)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 
assertValidPath(String trustAnchor, String[] certs, String[] crls)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 */
testSignatureVerification_ValidSignaturesTest1()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 */
testSignatureVerification_InvalidCASignatureTest2()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 */
testSignatureVerification_InvalidEESignatureTest3()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 */
testSignatureVerification_ValidDSASignaturesTest4()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 */
testSignatureVerification_ValidDSAParameterInheritanceTest5()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 */
testSignatureVerification_InvalidDSASignatureTest6()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 */
testValidityPeriods_InvalidCAnotBeforeDateTest1()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 */
testValidityPeriods_InvalidEEnotBeforeDateTest2()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 */
testValidityPeriods_Validpre2000UTCnotBeforeDateTest3()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 */
testValidityPeriods_ValidGeneralizedTimenotBeforeDateTest4()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 */
testValidityPeriods_InvalidCAnotAfterDateTest5()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 */
testValidityPeriods_InvalidEEnotAfterDateTest6()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 */
testValidityPeriods_Invalidpre2000UTCEEnotAfterDateTest7()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 */
testValidityPeriods_ValidGeneralizedTimenotAfterDateTest8()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 */
testVerifyingNameChaining_InvalidNameChainingEETest1()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 */
testVerifyingNameChaining_InvalidNameChainingOrderTest2()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 */
testVerifyingNameChaining_ValidNameChainingWhitespaceTest3()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 */
testVerifyingNameChaining_ValidNameChainingWhitespaceTest4()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 */
testVerifyingNameChaining_ValidNameChainingCapitalizationTest5()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 */
testVerifyingNameChaining_ValidNameChainingUIDsTest6()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 */
testVerifyingNameChaining_ValidRFC3280MandatoryAttributeTypesTest7()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 */
testVerifyingNameChaining_ValidRFC3280OptionalAttributeTypesTest8()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 */
testVerifyingNameChaining_ValidUTF8StringEncodedNamesTest9()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 */
testVerifyingNameChaining_ValidRolloverfromPrintableStringtoUTF8StringTest10()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 */
testVerifyingNameChaining_ValidUTF8StringCaseInsensitiveMatchTest11()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 */
testBasicCertificateRevocationTests_MissingCRLTest1()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 */
testBasicCertificateRevocationTests_InvalidRevokedCATest2()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 */
testBasicCertificateRevocationTests_InvalidRevokedEETest3()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 */
testBasicCertificateRevocationTests_InvalidBadCRLSignatureTest4()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 */
testBasicCertificateRevocationTests_InvalidBadCRLIssuerNameTest5()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 */
testBasicCertificateRevocationTests_InvalidWrongCRLTest6()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 */
testBasicCertificateRevocationTests_ValidTwoCRLsTest7()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 */
testBasicCertificateRevocationTests_InvalidUnknownCRLEntryExtensionTest8()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 */
testBasicCertificateRevocationTests_InvalidUnknownCRLExtensionTest9()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 */
testBasicCertificateRevocationTests_InvalidUnknownCRLExtensionTest10()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 */
testBasicCertificateRevocationTests_InvalidOldCRLnextUpdateTest11()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 */
testBasicCertificateRevocationTests_Invalidpre2000CRLnextUpdateTest12()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 */
testBasicCertificateRevocationTests_ValidGeneralizedTimeCRLnextUpdateTest13()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 */
testBasicCertificateRevocationTests_ValidNegativeSerialNumberTest14()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 */
testBasicCertificateRevocationTests_InvalidNegativeSerialNumberTest15()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 */
testBasicCertificateRevocationTests_ValidLongSerialNumberTest16()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 */
testBasicCertificateRevocationTests_ValidLongSerialNumberTest17()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 */
testBasicCertificateRevocationTests_InvalidLongSerialNumberTest18()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 */
testBasicCertificateRevocationTests_ValidSeparateCertificateandCRLKeysTest19()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 */
testBasicCertificateRevocationTests_InvalidSeparateCertificateandCRLKeysTest20()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 */
testBasicCertificateRevocationTests_InvalidSeparateCertificateandCRLKeysTest21()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 */
testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedOldWithNewTest1()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 */
testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedOldWithNewTest2()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 */
testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedNewWithOldTest3()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 */
testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedNewWithOldTest4()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 */
testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedNewWithOldTest5()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 */
testVerifyingPathswithSelfIssuedCertificates_ValidBasicSelfIssuedCRLSigningKeyTest6()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 */
testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedCRLSigningKeyTest7()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 */
testVerifyingPathswithSelfIssuedCertificates_InvalidBasicSelfIssuedCRLSigningKeyTest8()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 */
testVerifyingBasicConstraints_InvalidMissingbasicConstraintsTest1()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 */
testVerifyingBasicConstraints_InvalidcAFalseTest2()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 */
testVerifyingBasicConstraints_InvalidcAFalseTest3()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 */
testVerifyingBasicConstraints_ValidbasicConstraintsNotCriticalTest4()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 */
testVerifyingBasicConstraints_InvalidpathLenConstraintTest5()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 */
testVerifyingBasicConstraints_InvalidpathLenConstraintTest6()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 */
testVerifyingBasicConstraints_ValidpathLenConstraintTest7()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 */
testVerifyingBasicConstraints_ValidpathLenConstraintTest8()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 */
testVerifyingBasicConstraints_InvalidpathLenConstraintTest9()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 */
testVerifyingBasicConstraints_InvalidpathLenConstraintTest10()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 */
testVerifyingBasicConstraints_InvalidpathLenConstraintTest11()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 */
testVerifyingBasicConstraints_InvalidpathLenConstraintTest12()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 */
testVerifyingBasicConstraints_ValidpathLenConstraintTest13()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 */
testVerifyingBasicConstraints_ValidpathLenConstraintTest14()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 */
testVerifyingBasicConstraints_ValidSelfIssuedpathLenConstraintTest15()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 */
testVerifyingBasicConstraints_InvalidSelfIssuedpathLenConstraintTest16()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 */
testVerifyingBasicConstraints_ValidSelfIssuedpathLenConstraintTest17()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 */
testKeyUsage_InvalidkeyUsageCriticalkeyCertSignFalseTest1()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 */
testKeyUsage_InvalidkeyUsageNotCriticalkeyCertSignFalseTest2()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 */
testKeyUsage_ValidkeyUsageNotCriticalTest3()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 */
testKeyUsage_InvalidkeyUsageCriticalcRLSignFalseTest4()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 */
testKeyUsage_InvalidkeyUsageNotCriticalcRLSignFalseTest5()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 */
testKeyUsage_ValidDNnameConstraintsTest1()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 */
testKeyUsage_InvalidDNnameConstraintsTest2()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 */
testKeyUsage_InvalidDNnameConstraintsTest3()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 */
testKeyUsage_ValidDNnameConstraintsTest4()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 */
testKeyUsage_ValidDNnameConstraintsTest5()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 */
testKeyUsage_ValidDNnameConstraintsTest6()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 */
testKeyUsage_InvalidDNnameConstraintsTest7()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 */
testKeyUsage_InvalidDNnameConstraintsTest8()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 */
testKeyUsage_InvalidDNnameConstraintsTest9()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 */
testKeyUsage_InvalidDNnameConstraintsTest10()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 */
testKeyUsage_ValidDNnameConstraintsTest11()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 */
testKeyUsage_InvalidDNnameConstraintsTest12()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 */
testKeyUsage_InvalidDNnameConstraintsTest13()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 */
testKeyUsage_ValidDNnameConstraintsTest14()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 */
testKeyUsage_InvalidDNnameConstraintsTest15()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 */
testKeyUsage_InvalidDNnameConstraintsTest16()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 */
testKeyUsage_InvalidDNnameConstraintsTest17()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 */
testKeyUsage_ValidDNnameConstraintsTest18()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 */
testKeyUsage_ValidSelfIssuedDNnameConstraintsTest19()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 */
testKeyUsage_InvalidSelfIssuedDNnameConstraintsTest20()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 */
testKeyUsage_ValidRFC822nameConstraintsTest21()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 */
testKeyUsage_InvalidRFC822nameConstraintsTest22()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 */
testKeyUsage_ValidRFC822nameConstraintsTest23()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 */
testKeyUsage_InvalidRFC822nameConstraintsTest24()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 */
testKeyUsage_ValidRFC822nameConstraintsTest25()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 */
testKeyUsage_InvalidRFC822nameConstraintsTest26()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 */
testKeyUsage_ValidDNandRFC822nameConstraintsTest27()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 */
testKeyUsage_InvalidDNandRFC822nameConstraintsTest28()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 */
testKeyUsage_InvalidDNandRFC822nameConstraintsTest29()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 */
testKeyUsage_ValidDNSnameConstraintsTest30()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 */
testKeyUsage_InvalidDNSnameConstraintsTest31()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 */
testKeyUsage_ValidDNSnameConstraintsTest32()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 */
testKeyUsage_InvalidDNSnameConstraintsTest33()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 */
testKeyUsage_ValidURInameConstraintsTest34()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 */
testKeyUsage_InvalidURInameConstraintsTest35()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 */
testKeyUsage_ValidURInameConstraintsTest36()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 */
testKeyUsage_InvalidURInameConstraintsTest37()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 */
testKeyUsage_InvalidDNSnameConstraintsTest38()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 */
testDistributionPoints_ValiddistributionPointTest1()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 */
testDistributionPoints_InvaliddistributionPointTest2()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 */
testDistributionPoints_InvaliddistributionPointTest3()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 */
testDistributionPoints_ValiddistributionPointTest4()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 */
testDistributionPoints_ValiddistributionPointTest5()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 */
testDistributionPoints_InvaliddistributionPointTest6()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 */
testDistributionPoints_ValiddistributionPointTest7()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 */
testDistributionPoints_InvaliddistributionPointTest8()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 */
testDistributionPoints_InvaliddistributionPointTest9()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 */
testDistributionPoints_ValidNoissuingDistributionPointTest10()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 */
testDistributionPoints_InvalidonlyContainsUserCertsCRLTest11()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 */
testDistributionPoints_InvalidonlyContainsCACertsCRLTest12()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 */
testDistributionPoints_ValidonlyContainsCACertsCRLTest13()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 */
testDistributionPoints_InvalidonlyContainsAttributeCertsTest14()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 */
testDistributionPoints_InvalidonlySomeReasonsTest15()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 */
testDistributionPoints_InvalidonlySomeReasonsTest16()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 */
testDistributionPoints_InvalidonlySomeReasonsTest17()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 */
testDistributionPoints_ValidonlySomeReasonsTest18()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 */
testDistributionPoints_ValidonlySomeReasonsTest19()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 */
testDistributionPoints_InvalidonlySomeReasonsTest20()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 */
testDistributionPoints_InvalidonlySomeReasonsTest21()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 */
testDistributionPoints_ValidIDPwithindirectCRLTest22()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 */
testDistributionPoints_InvalidIDPwithindirectCRLTest23()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 */
testDistributionPoints_ValidIDPwithindirectCRLTest24()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 */
testDistributionPoints_ValidIDPwithindirectCRLTest25()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 */
testDistributionPoints_InvalidIDPwithindirectCRLTest26()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 */
testDistributionPoints_InvalidcRLIssuerTest27()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 */
testDistributionPoints_ValidcRLIssuerTest28()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 */
testDistributionPoints_ValidcRLIssuerTest29()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 */
testDistributionPoints_ValidcRLIssuerTest30()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 */
testDistributionPoints_InvalidcRLIssuerTest31()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 */
testDistributionPoints_InvalidcRLIssuerTest32()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 */
testDistributionPoints_ValidcRLIssuerTest33()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 */
testDistributionPoints_InvalidcRLIssuerTest34()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 */
testDistributionPoints_InvalidcRLIssuerTest35()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 */
testDeltaCRLs_InvaliddeltaCRLIndicatorNoBaseTest1()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 */
testDeltaCRLs_ValiddeltaCRLTest2()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 */
testDeltaCRLs_InvaliddeltaCRLTest3()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 */
testDeltaCRLs_InvaliddeltaCRLTest4()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 */
testDeltaCRLs_ValiddeltaCRLTest5()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 */
testDeltaCRLs_InvaliddeltaCRLTest6()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 */
testDeltaCRLs_ValiddeltaCRLTest7()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 */
testDeltaCRLs_ValiddeltaCRLTest8()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 */
testDeltaCRLs_InvaliddeltaCRLTest9()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 */
testDeltaCRLs_InvaliddeltaCRLTest10()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 */
testPrivateCertificateExtensions_ValidUnknownNotCriticalCertificateExtensionTest1()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