xref: /aosp_15_r20/external/cronet/third_party/boringssl/src/pki/testdata/nist-pkits/pkits_testcases-inl.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Autogenerated by generate_tests.py, do not edit
2 
3 // This file intentionally does not have header guards, it's intended to
4 // be inlined in another header file. The following line silences a
5 // presubmit warning that would otherwise be triggered by this:
6 // no-include-guard-because-multiply-included
7 // NOLINT(build/header_guard)
8 
9 // Hack to allow disabling type parameterized test cases.
10 // See https://github.com/google/googletest/issues/389
11 #define WRAPPED_TYPED_TEST_P(CaseName, TestName) \
12   TYPED_TEST_P(CaseName, TestName)
13 #define WRAPPED_REGISTER_TYPED_TEST_SUITE_P(CaseName, ...) \
14   REGISTER_TYPED_TEST_SUITE_P(CaseName, __VA_ARGS__)
15 
16 template <typename PkitsTestDelegate>
17 class PkitsTest01SignatureVerification : public PkitsTest<PkitsTestDelegate> {};
18 TYPED_TEST_SUITE_P(PkitsTest01SignatureVerification);
19 
20 // 4.1.1 Valid Signatures Test1
WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,Section1ValidSignaturesTest1)21 WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,
22                      Section1ValidSignaturesTest1) {
23   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
24                                "ValidCertificatePathTest1EE"};
25   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
26   PkitsTestInfo info;
27   info.test_number = "4.1.1";
28   info.should_validate = true;
29 
30   this->RunTest(certs, crls, info);
31 }
32 
33 // 4.1.2 Invalid CA Signature Test2
WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,Section1InvalidCASignatureTest2)34 WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,
35                      Section1InvalidCASignatureTest2) {
36   const char* const certs[] = {"TrustAnchorRootCertificate", "BadSignedCACert",
37                                "InvalidCASignatureTest2EE"};
38   const char* const crls[] = {"TrustAnchorRootCRL", "BadSignedCACRL"};
39   PkitsTestInfo info;
40   info.test_number = "4.1.2";
41   info.should_validate = false;
42 
43   this->RunTest(certs, crls, info);
44 }
45 
46 // 4.1.3 Invalid EE Signature Test3
WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,Section1InvalidEESignatureTest3)47 WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,
48                      Section1InvalidEESignatureTest3) {
49   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
50                                "InvalidEESignatureTest3EE"};
51   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
52   PkitsTestInfo info;
53   info.test_number = "4.1.3";
54   info.should_validate = false;
55 
56   this->RunTest(certs, crls, info);
57 }
58 
59 // 4.1.4 Valid DSA Signatures Test4
WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,Section1ValidDSASignaturesTest4)60 WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,
61                      Section1ValidDSASignaturesTest4) {
62   const char* const certs[] = {"TrustAnchorRootCertificate", "DSACACert",
63                                "ValidDSASignaturesTest4EE"};
64   const char* const crls[] = {"TrustAnchorRootCRL", "DSACACRL"};
65   PkitsTestInfo info;
66   info.test_number = "4.1.4";
67   info.should_validate = true;
68 
69   this->RunTest(certs, crls, info);
70 }
71 
72 // 4.1.5 Valid DSA Parameter Inheritance Test5
WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,Section1ValidDSAParameterInheritanceTest5)73 WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,
74                      Section1ValidDSAParameterInheritanceTest5) {
75   const char* const certs[] = {"TrustAnchorRootCertificate", "DSACACert",
76                                "DSAParametersInheritedCACert",
77                                "ValidDSAParameterInheritanceTest5EE"};
78   const char* const crls[] = {"TrustAnchorRootCRL", "DSACACRL",
79                               "DSAParametersInheritedCACRL"};
80   PkitsTestInfo info;
81   info.test_number = "4.1.5";
82   info.should_validate = true;
83 
84   this->RunTest(certs, crls, info);
85 }
86 
87 // 4.1.6 Invalid DSA Signature Test6
WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,Section1InvalidDSASignatureTest6)88 WRAPPED_TYPED_TEST_P(PkitsTest01SignatureVerification,
89                      Section1InvalidDSASignatureTest6) {
90   const char* const certs[] = {"TrustAnchorRootCertificate", "DSACACert",
91                                "InvalidDSASignatureTest6EE"};
92   const char* const crls[] = {"TrustAnchorRootCRL", "DSACACRL"};
93   PkitsTestInfo info;
94   info.test_number = "4.1.6";
95   info.should_validate = false;
96 
97   this->RunTest(certs, crls, info);
98 }
99 
100 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(PkitsTest01SignatureVerification,
101                                     Section1ValidSignaturesTest1,
102                                     Section1InvalidCASignatureTest2,
103                                     Section1InvalidEESignatureTest3,
104                                     Section1ValidDSASignaturesTest4,
105                                     Section1ValidDSAParameterInheritanceTest5,
106                                     Section1InvalidDSASignatureTest6);
107 
108 template <typename PkitsTestDelegate>
109 class PkitsTest02ValidityPeriods : public PkitsTest<PkitsTestDelegate> {};
110 TYPED_TEST_SUITE_P(PkitsTest02ValidityPeriods);
111 
112 // 4.2.1 Invalid CA notBefore Date Test1
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2InvalidCAnotBeforeDateTest1)113 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
114                      Section2InvalidCAnotBeforeDateTest1) {
115   const char* const certs[] = {"TrustAnchorRootCertificate",
116                                "BadnotBeforeDateCACert",
117                                "InvalidCAnotBeforeDateTest1EE"};
118   const char* const crls[] = {"TrustAnchorRootCRL", "BadnotBeforeDateCACRL"};
119   PkitsTestInfo info;
120   info.test_number = "4.2.1";
121   info.should_validate = false;
122 
123   this->RunTest(certs, crls, info);
124 }
125 
126 // 4.2.2 Invalid EE notBefore Date Test2
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2InvalidEEnotBeforeDateTest2)127 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
128                      Section2InvalidEEnotBeforeDateTest2) {
129   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
130                                "InvalidEEnotBeforeDateTest2EE"};
131   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
132   PkitsTestInfo info;
133   info.test_number = "4.2.2";
134   info.should_validate = false;
135 
136   this->RunTest(certs, crls, info);
137 }
138 
139 // 4.2.3 Valid pre2000 UTC notBefore Date Test3
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2Validpre2000UTCnotBeforeDateTest3)140 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
141                      Section2Validpre2000UTCnotBeforeDateTest3) {
142   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
143                                "Validpre2000UTCnotBeforeDateTest3EE"};
144   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
145   PkitsTestInfo info;
146   info.test_number = "4.2.3";
147   info.should_validate = true;
148 
149   this->RunTest(certs, crls, info);
150 }
151 
152 // 4.2.4 Valid GeneralizedTime notBefore Date Test4
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2ValidGeneralizedTimenotBeforeDateTest4)153 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
154                      Section2ValidGeneralizedTimenotBeforeDateTest4) {
155   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
156                                "ValidGeneralizedTimenotBeforeDateTest4EE"};
157   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
158   PkitsTestInfo info;
159   info.test_number = "4.2.4";
160   info.should_validate = true;
161 
162   this->RunTest(certs, crls, info);
163 }
164 
165 // 4.2.5 Invalid CA notAfter Date Test5
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2InvalidCAnotAfterDateTest5)166 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
167                      Section2InvalidCAnotAfterDateTest5) {
168   const char* const certs[] = {"TrustAnchorRootCertificate",
169                                "BadnotAfterDateCACert",
170                                "InvalidCAnotAfterDateTest5EE"};
171   const char* const crls[] = {"TrustAnchorRootCRL", "BadnotAfterDateCACRL"};
172   PkitsTestInfo info;
173   info.test_number = "4.2.5";
174   info.should_validate = false;
175 
176   this->RunTest(certs, crls, info);
177 }
178 
179 // 4.2.6 Invalid EE notAfter Date Test6
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2InvalidEEnotAfterDateTest6)180 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
181                      Section2InvalidEEnotAfterDateTest6) {
182   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
183                                "InvalidEEnotAfterDateTest6EE"};
184   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
185   PkitsTestInfo info;
186   info.test_number = "4.2.6";
187   info.should_validate = false;
188 
189   this->RunTest(certs, crls, info);
190 }
191 
192 // 4.2.7 Invalid pre2000 UTC EE notAfter Date Test7
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2Invalidpre2000UTCEEnotAfterDateTest7)193 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
194                      Section2Invalidpre2000UTCEEnotAfterDateTest7) {
195   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
196                                "Invalidpre2000UTCEEnotAfterDateTest7EE"};
197   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
198   PkitsTestInfo info;
199   info.test_number = "4.2.7";
200   info.should_validate = false;
201 
202   this->RunTest(certs, crls, info);
203 }
204 
205 // 4.2.8 Valid GeneralizedTime notAfter Date Test8
WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,Section2ValidGeneralizedTimenotAfterDateTest8)206 WRAPPED_TYPED_TEST_P(PkitsTest02ValidityPeriods,
207                      Section2ValidGeneralizedTimenotAfterDateTest8) {
208   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
209                                "ValidGeneralizedTimenotAfterDateTest8EE"};
210   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
211   PkitsTestInfo info;
212   info.test_number = "4.2.8";
213   info.should_validate = true;
214 
215   this->RunTest(certs, crls, info);
216 }
217 
218 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
219     PkitsTest02ValidityPeriods,
220     Section2InvalidCAnotBeforeDateTest1,
221     Section2InvalidEEnotBeforeDateTest2,
222     Section2Validpre2000UTCnotBeforeDateTest3,
223     Section2ValidGeneralizedTimenotBeforeDateTest4,
224     Section2InvalidCAnotAfterDateTest5,
225     Section2InvalidEEnotAfterDateTest6,
226     Section2Invalidpre2000UTCEEnotAfterDateTest7,
227     Section2ValidGeneralizedTimenotAfterDateTest8);
228 
229 template <typename PkitsTestDelegate>
230 class PkitsTest03VerifyingNameChaining : public PkitsTest<PkitsTestDelegate> {};
231 TYPED_TEST_SUITE_P(PkitsTest03VerifyingNameChaining);
232 
233 // 4.3.1 Invalid Name Chaining EE Test1
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3InvalidNameChainingEETest1)234 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
235                      Section3InvalidNameChainingEETest1) {
236   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
237                                "InvalidNameChainingTest1EE"};
238   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
239   PkitsTestInfo info;
240   info.test_number = "4.3.1";
241   info.should_validate = false;
242 
243   this->RunTest(certs, crls, info);
244 }
245 
246 // 4.3.2 Invalid Name Chaining Order Test2
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3InvalidNameChainingOrderTest2)247 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
248                      Section3InvalidNameChainingOrderTest2) {
249   const char* const certs[] = {"TrustAnchorRootCertificate",
250                                "NameOrderingCACert",
251                                "InvalidNameChainingOrderTest2EE"};
252   const char* const crls[] = {"TrustAnchorRootCRL", "NameOrderCACRL"};
253   PkitsTestInfo info;
254   info.test_number = "4.3.2";
255   info.should_validate = false;
256 
257   this->RunTest(certs, crls, info);
258 }
259 
260 // 4.3.3 Valid Name Chaining Whitespace Test3
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidNameChainingWhitespaceTest3)261 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
262                      Section3ValidNameChainingWhitespaceTest3) {
263   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
264                                "ValidNameChainingWhitespaceTest3EE"};
265   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
266   PkitsTestInfo info;
267   info.test_number = "4.3.3";
268   info.should_validate = true;
269 
270   this->RunTest(certs, crls, info);
271 }
272 
273 // 4.3.4 Valid Name Chaining Whitespace Test4
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidNameChainingWhitespaceTest4)274 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
275                      Section3ValidNameChainingWhitespaceTest4) {
276   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
277                                "ValidNameChainingWhitespaceTest4EE"};
278   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
279   PkitsTestInfo info;
280   info.test_number = "4.3.4";
281   info.should_validate = true;
282 
283   this->RunTest(certs, crls, info);
284 }
285 
286 // 4.3.5 Valid Name Chaining Capitalization Test5
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidNameChainingCapitalizationTest5)287 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
288                      Section3ValidNameChainingCapitalizationTest5) {
289   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
290                                "ValidNameChainingCapitalizationTest5EE"};
291   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
292   PkitsTestInfo info;
293   info.test_number = "4.3.5";
294   info.should_validate = true;
295 
296   this->RunTest(certs, crls, info);
297 }
298 
299 // 4.3.6 Valid Name Chaining UIDs Test6
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidNameChainingUIDsTest6)300 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
301                      Section3ValidNameChainingUIDsTest6) {
302   const char* const certs[] = {"TrustAnchorRootCertificate", "UIDCACert",
303                                "ValidNameUIDsTest6EE"};
304   const char* const crls[] = {"TrustAnchorRootCRL", "UIDCACRL"};
305   PkitsTestInfo info;
306   info.test_number = "4.3.6";
307   info.should_validate = true;
308 
309   this->RunTest(certs, crls, info);
310 }
311 
312 // 4.3.7 Valid RFC3280 Mandatory Attribute Types Test7
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidRFC3280MandatoryAttributeTypesTest7)313 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
314                      Section3ValidRFC3280MandatoryAttributeTypesTest7) {
315   const char* const certs[] = {"TrustAnchorRootCertificate",
316                                "RFC3280MandatoryAttributeTypesCACert",
317                                "ValidRFC3280MandatoryAttributeTypesTest7EE"};
318   const char* const crls[] = {"TrustAnchorRootCRL",
319                               "RFC3280MandatoryAttributeTypesCACRL"};
320   PkitsTestInfo info;
321   info.test_number = "4.3.7";
322   info.should_validate = true;
323 
324   this->RunTest(certs, crls, info);
325 }
326 
327 // 4.3.8 Valid RFC3280 Optional Attribute Types Test8
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidRFC3280OptionalAttributeTypesTest8)328 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
329                      Section3ValidRFC3280OptionalAttributeTypesTest8) {
330   const char* const certs[] = {"TrustAnchorRootCertificate",
331                                "RFC3280OptionalAttributeTypesCACert",
332                                "ValidRFC3280OptionalAttributeTypesTest8EE"};
333   const char* const crls[] = {"TrustAnchorRootCRL",
334                               "RFC3280OptionalAttributeTypesCACRL"};
335   PkitsTestInfo info;
336   info.test_number = "4.3.8";
337   info.should_validate = true;
338 
339   this->RunTest(certs, crls, info);
340 }
341 
342 // 4.3.9 Valid UTF8String Encoded Names Test9
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidUTF8StringEncodedNamesTest9)343 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
344                      Section3ValidUTF8StringEncodedNamesTest9) {
345   const char* const certs[] = {"TrustAnchorRootCertificate",
346                                "UTF8StringEncodedNamesCACert",
347                                "ValidUTF8StringEncodedNamesTest9EE"};
348   const char* const crls[] = {"TrustAnchorRootCRL",
349                               "UTF8StringEncodedNamesCACRL"};
350   PkitsTestInfo info;
351   info.test_number = "4.3.9";
352   info.should_validate = true;
353 
354   this->RunTest(certs, crls, info);
355 }
356 
357 // 4.3.10 Valid Rollover from PrintableString to UTF8String Test10
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidRolloverfromPrintableStringtoUTF8StringTest10)358 WRAPPED_TYPED_TEST_P(
359     PkitsTest03VerifyingNameChaining,
360     Section3ValidRolloverfromPrintableStringtoUTF8StringTest10) {
361   const char* const certs[] = {
362       "TrustAnchorRootCertificate",
363       "RolloverfromPrintableStringtoUTF8StringCACert",
364       "ValidRolloverfromPrintableStringtoUTF8StringTest10EE"};
365   const char* const crls[] = {"TrustAnchorRootCRL",
366                               "RolloverfromPrintableStringtoUTF8StringCACRL"};
367   PkitsTestInfo info;
368   info.test_number = "4.3.10";
369   info.should_validate = true;
370 
371   this->RunTest(certs, crls, info);
372 }
373 
374 // 4.3.11 Valid UTF8String Case Insensitive Match Test11
WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,Section3ValidUTF8StringCaseInsensitiveMatchTest11)375 WRAPPED_TYPED_TEST_P(PkitsTest03VerifyingNameChaining,
376                      Section3ValidUTF8StringCaseInsensitiveMatchTest11) {
377   const char* const certs[] = {"TrustAnchorRootCertificate",
378                                "UTF8StringCaseInsensitiveMatchCACert",
379                                "ValidUTF8StringCaseInsensitiveMatchTest11EE"};
380   const char* const crls[] = {"TrustAnchorRootCRL",
381                               "UTF8StringCaseInsensitiveMatchCACRL"};
382   PkitsTestInfo info;
383   info.test_number = "4.3.11";
384   info.should_validate = true;
385 
386   this->RunTest(certs, crls, info);
387 }
388 
389 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
390     PkitsTest03VerifyingNameChaining,
391     Section3InvalidNameChainingEETest1,
392     Section3InvalidNameChainingOrderTest2,
393     Section3ValidNameChainingWhitespaceTest3,
394     Section3ValidNameChainingWhitespaceTest4,
395     Section3ValidNameChainingCapitalizationTest5,
396     Section3ValidNameChainingUIDsTest6,
397     Section3ValidRFC3280MandatoryAttributeTypesTest7,
398     Section3ValidRFC3280OptionalAttributeTypesTest8,
399     Section3ValidUTF8StringEncodedNamesTest9,
400     Section3ValidRolloverfromPrintableStringtoUTF8StringTest10,
401     Section3ValidUTF8StringCaseInsensitiveMatchTest11);
402 
403 template <typename PkitsTestDelegate>
404 class PkitsTest04BasicCertificateRevocationTests
405     : public PkitsTest<PkitsTestDelegate> {};
406 TYPED_TEST_SUITE_P(PkitsTest04BasicCertificateRevocationTests);
407 
408 // 4.4.1 Missing CRL Test1
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4MissingCRLTest1)409 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
410                      Section4MissingCRLTest1) {
411   const char* const certs[] = {"TrustAnchorRootCertificate", "NoCRLCACert",
412                                "InvalidMissingCRLTest1EE"};
413   const char* const crls[] = {"TrustAnchorRootCRL"};
414   PkitsTestInfo info;
415   info.test_number = "4.4.1";
416   info.should_validate = false;
417 
418   this->RunTest(certs, crls, info);
419 }
420 
421 // 4.4.2 Invalid Revoked CA Test2
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidRevokedCATest2)422 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
423                      Section4InvalidRevokedCATest2) {
424   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
425                                "RevokedsubCACert", "InvalidRevokedCATest2EE"};
426   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
427                               "RevokedsubCACRL"};
428   PkitsTestInfo info;
429   info.test_number = "4.4.2";
430   info.should_validate = false;
431 
432   this->RunTest(certs, crls, info);
433 }
434 
435 // 4.4.3 Invalid Revoked EE Test3
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidRevokedEETest3)436 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
437                      Section4InvalidRevokedEETest3) {
438   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
439                                "InvalidRevokedEETest3EE"};
440   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
441   PkitsTestInfo info;
442   info.test_number = "4.4.3";
443   info.should_validate = false;
444 
445   this->RunTest(certs, crls, info);
446 }
447 
448 // 4.4.4 Invalid Bad CRL Signature Test4
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidBadCRLSignatureTest4)449 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
450                      Section4InvalidBadCRLSignatureTest4) {
451   const char* const certs[] = {"TrustAnchorRootCertificate",
452                                "BadCRLSignatureCACert",
453                                "InvalidBadCRLSignatureTest4EE"};
454   const char* const crls[] = {"TrustAnchorRootCRL", "BadCRLSignatureCACRL"};
455   PkitsTestInfo info;
456   info.test_number = "4.4.4";
457   info.should_validate = false;
458 
459   this->RunTest(certs, crls, info);
460 }
461 
462 // 4.4.5 Invalid Bad CRL Issuer Name Test5
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidBadCRLIssuerNameTest5)463 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
464                      Section4InvalidBadCRLIssuerNameTest5) {
465   const char* const certs[] = {"TrustAnchorRootCertificate",
466                                "BadCRLIssuerNameCACert",
467                                "InvalidBadCRLIssuerNameTest5EE"};
468   const char* const crls[] = {"TrustAnchorRootCRL", "BadCRLIssuerNameCACRL"};
469   PkitsTestInfo info;
470   info.test_number = "4.4.5";
471   info.should_validate = false;
472 
473   this->RunTest(certs, crls, info);
474 }
475 
476 // 4.4.6 Invalid Wrong CRL Test6
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidWrongCRLTest6)477 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
478                      Section4InvalidWrongCRLTest6) {
479   const char* const certs[] = {"TrustAnchorRootCertificate", "WrongCRLCACert",
480                                "InvalidWrongCRLTest6EE"};
481   const char* const crls[] = {"TrustAnchorRootCRL", "WrongCRLCACRL"};
482   PkitsTestInfo info;
483   info.test_number = "4.4.6";
484   info.should_validate = false;
485 
486   this->RunTest(certs, crls, info);
487 }
488 
489 // 4.4.7 Valid Two CRLs Test7
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4ValidTwoCRLsTest7)490 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
491                      Section4ValidTwoCRLsTest7) {
492   const char* const certs[] = {"TrustAnchorRootCertificate", "TwoCRLsCACert",
493                                "ValidTwoCRLsTest7EE"};
494   const char* const crls[] = {"TrustAnchorRootCRL", "TwoCRLsCAGoodCRL",
495                               "TwoCRLsCABadCRL"};
496   PkitsTestInfo info;
497   info.test_number = "4.4.7";
498   info.should_validate = true;
499 
500   this->RunTest(certs, crls, info);
501 }
502 
503 // 4.4.8 Invalid Unknown CRL Entry Extension Test8
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidUnknownCRLEntryExtensionTest8)504 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
505                      Section4InvalidUnknownCRLEntryExtensionTest8) {
506   const char* const certs[] = {"TrustAnchorRootCertificate",
507                                "UnknownCRLEntryExtensionCACert",
508                                "InvalidUnknownCRLEntryExtensionTest8EE"};
509   const char* const crls[] = {"TrustAnchorRootCRL",
510                               "UnknownCRLEntryExtensionCACRL"};
511   PkitsTestInfo info;
512   info.test_number = "4.4.8";
513   info.should_validate = false;
514 
515   this->RunTest(certs, crls, info);
516 }
517 
518 // 4.4.9 Invalid Unknown CRL Extension Test9
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidUnknownCRLExtensionTest9)519 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
520                      Section4InvalidUnknownCRLExtensionTest9) {
521   const char* const certs[] = {"TrustAnchorRootCertificate",
522                                "UnknownCRLExtensionCACert",
523                                "InvalidUnknownCRLExtensionTest9EE"};
524   const char* const crls[] = {"TrustAnchorRootCRL", "UnknownCRLExtensionCACRL"};
525   PkitsTestInfo info;
526   info.test_number = "4.4.9";
527   info.should_validate = false;
528 
529   this->RunTest(certs, crls, info);
530 }
531 
532 // 4.4.10 Invalid Unknown CRL Extension Test10
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidUnknownCRLExtensionTest10)533 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
534                      Section4InvalidUnknownCRLExtensionTest10) {
535   const char* const certs[] = {"TrustAnchorRootCertificate",
536                                "UnknownCRLExtensionCACert",
537                                "InvalidUnknownCRLExtensionTest10EE"};
538   const char* const crls[] = {"TrustAnchorRootCRL", "UnknownCRLExtensionCACRL"};
539   PkitsTestInfo info;
540   info.test_number = "4.4.10";
541   info.should_validate = false;
542 
543   this->RunTest(certs, crls, info);
544 }
545 
546 // 4.4.11 Invalid Old CRL nextUpdate Test11
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidOldCRLnextUpdateTest11)547 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
548                      Section4InvalidOldCRLnextUpdateTest11) {
549   const char* const certs[] = {"TrustAnchorRootCertificate",
550                                "OldCRLnextUpdateCACert",
551                                "InvalidOldCRLnextUpdateTest11EE"};
552   const char* const crls[] = {"TrustAnchorRootCRL", "OldCRLnextUpdateCACRL"};
553   PkitsTestInfo info;
554   info.test_number = "4.4.11";
555   info.should_validate = false;
556 
557   this->RunTest(certs, crls, info);
558 }
559 
560 // 4.4.12 Invalid pre2000 CRL nextUpdate Test12
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4Invalidpre2000CRLnextUpdateTest12)561 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
562                      Section4Invalidpre2000CRLnextUpdateTest12) {
563   const char* const certs[] = {"TrustAnchorRootCertificate",
564                                "pre2000CRLnextUpdateCACert",
565                                "Invalidpre2000CRLnextUpdateTest12EE"};
566   const char* const crls[] = {"TrustAnchorRootCRL",
567                               "pre2000CRLnextUpdateCACRL"};
568   PkitsTestInfo info;
569   info.test_number = "4.4.12";
570   info.should_validate = false;
571 
572   this->RunTest(certs, crls, info);
573 }
574 
575 // 4.4.13 Valid GeneralizedTime CRL nextUpdate Test13
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4ValidGeneralizedTimeCRLnextUpdateTest13)576 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
577                      Section4ValidGeneralizedTimeCRLnextUpdateTest13) {
578   const char* const certs[] = {"TrustAnchorRootCertificate",
579                                "GeneralizedTimeCRLnextUpdateCACert",
580                                "ValidGeneralizedTimeCRLnextUpdateTest13EE"};
581   const char* const crls[] = {"TrustAnchorRootCRL",
582                               "GeneralizedTimeCRLnextUpdateCACRL"};
583   PkitsTestInfo info;
584   info.test_number = "4.4.13";
585   info.should_validate = true;
586 
587   this->RunTest(certs, crls, info);
588 }
589 
590 // 4.4.14 Valid Negative Serial Number Test14
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4ValidNegativeSerialNumberTest14)591 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
592                      Section4ValidNegativeSerialNumberTest14) {
593   const char* const certs[] = {"TrustAnchorRootCertificate",
594                                "NegativeSerialNumberCACert",
595                                "ValidNegativeSerialNumberTest14EE"};
596   const char* const crls[] = {"TrustAnchorRootCRL",
597                               "NegativeSerialNumberCACRL"};
598   PkitsTestInfo info;
599   info.test_number = "4.4.14";
600   info.should_validate = true;
601 
602   this->RunTest(certs, crls, info);
603 }
604 
605 // 4.4.15 Invalid Negative Serial Number Test15
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidNegativeSerialNumberTest15)606 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
607                      Section4InvalidNegativeSerialNumberTest15) {
608   const char* const certs[] = {"TrustAnchorRootCertificate",
609                                "NegativeSerialNumberCACert",
610                                "InvalidNegativeSerialNumberTest15EE"};
611   const char* const crls[] = {"TrustAnchorRootCRL",
612                               "NegativeSerialNumberCACRL"};
613   PkitsTestInfo info;
614   info.test_number = "4.4.15";
615   info.should_validate = false;
616 
617   this->RunTest(certs, crls, info);
618 }
619 
620 // 4.4.16 Valid Long Serial Number Test16
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4ValidLongSerialNumberTest16)621 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
622                      Section4ValidLongSerialNumberTest16) {
623   const char* const certs[] = {"TrustAnchorRootCertificate",
624                                "LongSerialNumberCACert",
625                                "ValidLongSerialNumberTest16EE"};
626   const char* const crls[] = {"TrustAnchorRootCRL", "LongSerialNumberCACRL"};
627   PkitsTestInfo info;
628   info.test_number = "4.4.16";
629   info.should_validate = true;
630 
631   this->RunTest(certs, crls, info);
632 }
633 
634 // 4.4.17 Valid Long Serial Number Test17
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4ValidLongSerialNumberTest17)635 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
636                      Section4ValidLongSerialNumberTest17) {
637   const char* const certs[] = {"TrustAnchorRootCertificate",
638                                "LongSerialNumberCACert",
639                                "ValidLongSerialNumberTest17EE"};
640   const char* const crls[] = {"TrustAnchorRootCRL", "LongSerialNumberCACRL"};
641   PkitsTestInfo info;
642   info.test_number = "4.4.17";
643   info.should_validate = true;
644 
645   this->RunTest(certs, crls, info);
646 }
647 
648 // 4.4.18 Invalid Long Serial Number Test18
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidLongSerialNumberTest18)649 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
650                      Section4InvalidLongSerialNumberTest18) {
651   const char* const certs[] = {"TrustAnchorRootCertificate",
652                                "LongSerialNumberCACert",
653                                "InvalidLongSerialNumberTest18EE"};
654   const char* const crls[] = {"TrustAnchorRootCRL", "LongSerialNumberCACRL"};
655   PkitsTestInfo info;
656   info.test_number = "4.4.18";
657   info.should_validate = false;
658 
659   this->RunTest(certs, crls, info);
660 }
661 
662 // 4.4.19 Valid Separate Certificate and CRL Keys Test19
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4ValidSeparateCertificateandCRLKeysTest19)663 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
664                      Section4ValidSeparateCertificateandCRLKeysTest19) {
665   const char* const certs[] = {
666       "TrustAnchorRootCertificate",
667       "SeparateCertificateandCRLKeysCertificateSigningCACert",
668       "SeparateCertificateandCRLKeysCRLSigningCert",
669       "ValidSeparateCertificateandCRLKeysTest19EE"};
670   const char* const crls[] = {"TrustAnchorRootCRL",
671                               "SeparateCertificateandCRLKeysCRL"};
672   PkitsTestInfo info;
673   info.test_number = "4.4.19";
674   info.should_validate = true;
675 
676   this->RunTest(certs, crls, info);
677 }
678 
679 // 4.4.20 Invalid Separate Certificate and CRL Keys Test20
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidSeparateCertificateandCRLKeysTest20)680 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
681                      Section4InvalidSeparateCertificateandCRLKeysTest20) {
682   const char* const certs[] = {
683       "TrustAnchorRootCertificate",
684       "SeparateCertificateandCRLKeysCertificateSigningCACert",
685       "SeparateCertificateandCRLKeysCRLSigningCert",
686       "InvalidSeparateCertificateandCRLKeysTest20EE"};
687   const char* const crls[] = {"TrustAnchorRootCRL",
688                               "SeparateCertificateandCRLKeysCRL"};
689   PkitsTestInfo info;
690   info.test_number = "4.4.20";
691   info.should_validate = false;
692 
693   this->RunTest(certs, crls, info);
694 }
695 
696 // 4.4.21 Invalid Separate Certificate and CRL Keys Test21
WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,Section4InvalidSeparateCertificateandCRLKeysTest21)697 WRAPPED_TYPED_TEST_P(PkitsTest04BasicCertificateRevocationTests,
698                      Section4InvalidSeparateCertificateandCRLKeysTest21) {
699   const char* const certs[] = {
700       "TrustAnchorRootCertificate",
701       "SeparateCertificateandCRLKeysCA2CertificateSigningCACert",
702       "SeparateCertificateandCRLKeysCA2CRLSigningCert",
703       "InvalidSeparateCertificateandCRLKeysTest21EE"};
704   const char* const crls[] = {"TrustAnchorRootCRL",
705                               "SeparateCertificateandCRLKeysCA2CRL"};
706   PkitsTestInfo info;
707   info.test_number = "4.4.21";
708   info.should_validate = false;
709 
710   this->RunTest(certs, crls, info);
711 }
712 
713 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
714     PkitsTest04BasicCertificateRevocationTests,
715     Section4MissingCRLTest1,
716     Section4InvalidRevokedCATest2,
717     Section4InvalidRevokedEETest3,
718     Section4InvalidBadCRLSignatureTest4,
719     Section4InvalidBadCRLIssuerNameTest5,
720     Section4InvalidWrongCRLTest6,
721     Section4ValidTwoCRLsTest7,
722     Section4InvalidUnknownCRLEntryExtensionTest8,
723     Section4InvalidUnknownCRLExtensionTest9,
724     Section4InvalidUnknownCRLExtensionTest10,
725     Section4InvalidOldCRLnextUpdateTest11,
726     Section4Invalidpre2000CRLnextUpdateTest12,
727     Section4ValidGeneralizedTimeCRLnextUpdateTest13,
728     Section4ValidNegativeSerialNumberTest14,
729     Section4InvalidNegativeSerialNumberTest15,
730     Section4ValidLongSerialNumberTest16,
731     Section4ValidLongSerialNumberTest17,
732     Section4InvalidLongSerialNumberTest18,
733     Section4ValidSeparateCertificateandCRLKeysTest19,
734     Section4InvalidSeparateCertificateandCRLKeysTest20,
735     Section4InvalidSeparateCertificateandCRLKeysTest21);
736 
737 template <typename PkitsTestDelegate>
738 class PkitsTest05VerifyingPathswithSelfIssuedCertificates
739     : public PkitsTest<PkitsTestDelegate> {};
740 TYPED_TEST_SUITE_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates);
741 
742 // 4.5.1 Valid Basic Self-Issued Old With New Test1
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5ValidBasicSelfIssuedOldWithNewTest1)743 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
744                      Section5ValidBasicSelfIssuedOldWithNewTest1) {
745   const char* const certs[] = {"TrustAnchorRootCertificate",
746                                "BasicSelfIssuedNewKeyCACert",
747                                "BasicSelfIssuedNewKeyOldWithNewCACert",
748                                "ValidBasicSelfIssuedOldWithNewTest1EE"};
749   const char* const crls[] = {"TrustAnchorRootCRL",
750                               "BasicSelfIssuedNewKeyCACRL"};
751   PkitsTestInfo info;
752   info.test_number = "4.5.1";
753   info.should_validate = true;
754 
755   this->RunTest(certs, crls, info);
756 }
757 
758 // 4.5.2 Invalid Basic Self-Issued Old With New Test2
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5InvalidBasicSelfIssuedOldWithNewTest2)759 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
760                      Section5InvalidBasicSelfIssuedOldWithNewTest2) {
761   const char* const certs[] = {"TrustAnchorRootCertificate",
762                                "BasicSelfIssuedNewKeyCACert",
763                                "BasicSelfIssuedNewKeyOldWithNewCACert",
764                                "InvalidBasicSelfIssuedOldWithNewTest2EE"};
765   const char* const crls[] = {"TrustAnchorRootCRL",
766                               "BasicSelfIssuedNewKeyCACRL"};
767   PkitsTestInfo info;
768   info.test_number = "4.5.2";
769   info.should_validate = false;
770 
771   this->RunTest(certs, crls, info);
772 }
773 
774 // 4.5.3 Valid Basic Self-Issued New With Old Test3
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5ValidBasicSelfIssuedNewWithOldTest3)775 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
776                      Section5ValidBasicSelfIssuedNewWithOldTest3) {
777   const char* const certs[] = {"TrustAnchorRootCertificate",
778                                "BasicSelfIssuedOldKeyCACert",
779                                "BasicSelfIssuedOldKeyNewWithOldCACert",
780                                "ValidBasicSelfIssuedNewWithOldTest3EE"};
781   const char* const crls[] = {"TrustAnchorRootCRL",
782                               "BasicSelfIssuedOldKeySelfIssuedCertCRL",
783                               "BasicSelfIssuedOldKeyCACRL"};
784   PkitsTestInfo info;
785   info.test_number = "4.5.3";
786   info.should_validate = true;
787 
788   this->RunTest(certs, crls, info);
789 }
790 
791 // 4.5.4 Valid Basic Self-Issued New With Old Test4
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5ValidBasicSelfIssuedNewWithOldTest4)792 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
793                      Section5ValidBasicSelfIssuedNewWithOldTest4) {
794   const char* const certs[] = {"TrustAnchorRootCertificate",
795                                "BasicSelfIssuedOldKeyCACert",
796                                "BasicSelfIssuedOldKeyNewWithOldCACert",
797                                "ValidBasicSelfIssuedNewWithOldTest4EE"};
798   const char* const crls[] = {"TrustAnchorRootCRL",
799                               "BasicSelfIssuedOldKeySelfIssuedCertCRL",
800                               "BasicSelfIssuedOldKeyCACRL"};
801   PkitsTestInfo info;
802   info.test_number = "4.5.4";
803   info.should_validate = true;
804 
805   this->RunTest(certs, crls, info);
806 }
807 
808 // 4.5.5 Invalid Basic Self-Issued New With Old Test5
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5InvalidBasicSelfIssuedNewWithOldTest5)809 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
810                      Section5InvalidBasicSelfIssuedNewWithOldTest5) {
811   const char* const certs[] = {"TrustAnchorRootCertificate",
812                                "BasicSelfIssuedOldKeyCACert",
813                                "BasicSelfIssuedOldKeyNewWithOldCACert",
814                                "InvalidBasicSelfIssuedNewWithOldTest5EE"};
815   const char* const crls[] = {"TrustAnchorRootCRL",
816                               "BasicSelfIssuedOldKeySelfIssuedCertCRL",
817                               "BasicSelfIssuedOldKeyCACRL"};
818   PkitsTestInfo info;
819   info.test_number = "4.5.5";
820   info.should_validate = false;
821 
822   this->RunTest(certs, crls, info);
823 }
824 
825 // 4.5.6 Valid Basic Self-Issued CRL Signing Key Test6
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5ValidBasicSelfIssuedCRLSigningKeyTest6)826 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
827                      Section5ValidBasicSelfIssuedCRLSigningKeyTest6) {
828   const char* const certs[] = {"TrustAnchorRootCertificate",
829                                "BasicSelfIssuedCRLSigningKeyCACert",
830                                "BasicSelfIssuedCRLSigningKeyCRLCert",
831                                "ValidBasicSelfIssuedCRLSigningKeyTest6EE"};
832   const char* const crls[] = {"TrustAnchorRootCRL",
833                               "BasicSelfIssuedCRLSigningKeyCRLCertCRL",
834                               "BasicSelfIssuedCRLSigningKeyCACRL"};
835   PkitsTestInfo info;
836   info.test_number = "4.5.6";
837   info.should_validate = true;
838 
839   this->RunTest(certs, crls, info);
840 }
841 
842 // 4.5.7 Invalid Basic Self-Issued CRL Signing Key Test7
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5InvalidBasicSelfIssuedCRLSigningKeyTest7)843 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
844                      Section5InvalidBasicSelfIssuedCRLSigningKeyTest7) {
845   const char* const certs[] = {"TrustAnchorRootCertificate",
846                                "BasicSelfIssuedCRLSigningKeyCACert",
847                                "BasicSelfIssuedCRLSigningKeyCRLCert",
848                                "InvalidBasicSelfIssuedCRLSigningKeyTest7EE"};
849   const char* const crls[] = {"TrustAnchorRootCRL",
850                               "BasicSelfIssuedCRLSigningKeyCRLCertCRL",
851                               "BasicSelfIssuedCRLSigningKeyCACRL"};
852   PkitsTestInfo info;
853   info.test_number = "4.5.7";
854   info.should_validate = false;
855 
856   this->RunTest(certs, crls, info);
857 }
858 
859 // 4.5.8 Invalid Basic Self-Issued CRL Signing Key Test8
WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,Section5InvalidBasicSelfIssuedCRLSigningKeyTest8)860 WRAPPED_TYPED_TEST_P(PkitsTest05VerifyingPathswithSelfIssuedCertificates,
861                      Section5InvalidBasicSelfIssuedCRLSigningKeyTest8) {
862   const char* const certs[] = {"TrustAnchorRootCertificate",
863                                "BasicSelfIssuedCRLSigningKeyCACert",
864                                "BasicSelfIssuedCRLSigningKeyCRLCert",
865                                "InvalidBasicSelfIssuedCRLSigningKeyTest8EE"};
866   const char* const crls[] = {"TrustAnchorRootCRL",
867                               "BasicSelfIssuedCRLSigningKeyCRLCertCRL",
868                               "BasicSelfIssuedCRLSigningKeyCACRL"};
869   PkitsTestInfo info;
870   info.test_number = "4.5.8";
871   info.should_validate = false;
872 
873   this->RunTest(certs, crls, info);
874 }
875 
876 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
877     PkitsTest05VerifyingPathswithSelfIssuedCertificates,
878     Section5ValidBasicSelfIssuedOldWithNewTest1,
879     Section5InvalidBasicSelfIssuedOldWithNewTest2,
880     Section5ValidBasicSelfIssuedNewWithOldTest3,
881     Section5ValidBasicSelfIssuedNewWithOldTest4,
882     Section5InvalidBasicSelfIssuedNewWithOldTest5,
883     Section5ValidBasicSelfIssuedCRLSigningKeyTest6,
884     Section5InvalidBasicSelfIssuedCRLSigningKeyTest7,
885     Section5InvalidBasicSelfIssuedCRLSigningKeyTest8);
886 
887 template <typename PkitsTestDelegate>
888 class PkitsTest06VerifyingBasicConstraints
889     : public PkitsTest<PkitsTestDelegate> {};
890 TYPED_TEST_SUITE_P(PkitsTest06VerifyingBasicConstraints);
891 
892 // 4.6.1 Invalid Missing basicConstraints Test1
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidMissingbasicConstraintsTest1)893 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
894                      Section6InvalidMissingbasicConstraintsTest1) {
895   const char* const certs[] = {"TrustAnchorRootCertificate",
896                                "MissingbasicConstraintsCACert",
897                                "InvalidMissingbasicConstraintsTest1EE"};
898   const char* const crls[] = {"TrustAnchorRootCRL",
899                               "MissingbasicConstraintsCACRL"};
900   PkitsTestInfo info;
901   info.test_number = "4.6.1";
902   info.should_validate = false;
903 
904   this->RunTest(certs, crls, info);
905 }
906 
907 // 4.6.2 Invalid cA False Test2
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidcAFalseTest2)908 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
909                      Section6InvalidcAFalseTest2) {
910   const char* const certs[] = {"TrustAnchorRootCertificate",
911                                "basicConstraintsCriticalcAFalseCACert",
912                                "InvalidcAFalseTest2EE"};
913   const char* const crls[] = {"TrustAnchorRootCRL",
914                               "basicConstraintsCriticalcAFalseCACRL"};
915   PkitsTestInfo info;
916   info.test_number = "4.6.2";
917   info.should_validate = false;
918 
919   this->RunTest(certs, crls, info);
920 }
921 
922 // 4.6.3 Invalid cA False Test3
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidcAFalseTest3)923 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
924                      Section6InvalidcAFalseTest3) {
925   const char* const certs[] = {"TrustAnchorRootCertificate",
926                                "basicConstraintsNotCriticalcAFalseCACert",
927                                "InvalidcAFalseTest3EE"};
928   const char* const crls[] = {"TrustAnchorRootCRL",
929                               "basicConstraintsNotCriticalcAFalseCACRL"};
930   PkitsTestInfo info;
931   info.test_number = "4.6.3";
932   info.should_validate = false;
933 
934   this->RunTest(certs, crls, info);
935 }
936 
937 // 4.6.4 Valid basicConstraints Not Critical Test4
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidbasicConstraintsNotCriticalTest4)938 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
939                      Section6ValidbasicConstraintsNotCriticalTest4) {
940   const char* const certs[] = {"TrustAnchorRootCertificate",
941                                "basicConstraintsNotCriticalCACert",
942                                "ValidbasicConstraintsNotCriticalTest4EE"};
943   const char* const crls[] = {"TrustAnchorRootCRL",
944                               "basicConstraintsNotCriticalCACRL"};
945   PkitsTestInfo info;
946   info.test_number = "4.6.4";
947   info.should_validate = true;
948 
949   this->RunTest(certs, crls, info);
950 }
951 
952 // 4.6.5 Invalid pathLenConstraint Test5
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidpathLenConstraintTest5)953 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
954                      Section6InvalidpathLenConstraintTest5) {
955   const char* const certs[] = {
956       "TrustAnchorRootCertificate", "pathLenConstraint0CACert",
957       "pathLenConstraint0subCACert", "InvalidpathLenConstraintTest5EE"};
958   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint0CACRL",
959                               "pathLenConstraint0subCACRL"};
960   PkitsTestInfo info;
961   info.test_number = "4.6.5";
962   info.should_validate = false;
963 
964   this->RunTest(certs, crls, info);
965 }
966 
967 // 4.6.6 Invalid pathLenConstraint Test6
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidpathLenConstraintTest6)968 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
969                      Section6InvalidpathLenConstraintTest6) {
970   const char* const certs[] = {
971       "TrustAnchorRootCertificate", "pathLenConstraint0CACert",
972       "pathLenConstraint0subCACert", "InvalidpathLenConstraintTest6EE"};
973   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint0CACRL",
974                               "pathLenConstraint0subCACRL"};
975   PkitsTestInfo info;
976   info.test_number = "4.6.6";
977   info.should_validate = false;
978 
979   this->RunTest(certs, crls, info);
980 }
981 
982 // 4.6.7 Valid pathLenConstraint Test7
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidpathLenConstraintTest7)983 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
984                      Section6ValidpathLenConstraintTest7) {
985   const char* const certs[] = {"TrustAnchorRootCertificate",
986                                "pathLenConstraint0CACert",
987                                "ValidpathLenConstraintTest7EE"};
988   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint0CACRL"};
989   PkitsTestInfo info;
990   info.test_number = "4.6.7";
991   info.should_validate = true;
992 
993   this->RunTest(certs, crls, info);
994 }
995 
996 // 4.6.8 Valid pathLenConstraint Test8
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidpathLenConstraintTest8)997 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
998                      Section6ValidpathLenConstraintTest8) {
999   const char* const certs[] = {"TrustAnchorRootCertificate",
1000                                "pathLenConstraint0CACert",
1001                                "ValidpathLenConstraintTest8EE"};
1002   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint0CACRL"};
1003   PkitsTestInfo info;
1004   info.test_number = "4.6.8";
1005   info.should_validate = true;
1006 
1007   this->RunTest(certs, crls, info);
1008 }
1009 
1010 // 4.6.9 Invalid pathLenConstraint Test9
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidpathLenConstraintTest9)1011 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1012                      Section6InvalidpathLenConstraintTest9) {
1013   const char* const certs[] = {
1014       "TrustAnchorRootCertificate", "pathLenConstraint6CACert",
1015       "pathLenConstraint6subCA0Cert", "pathLenConstraint6subsubCA00Cert",
1016       "InvalidpathLenConstraintTest9EE"};
1017   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint6CACRL",
1018                               "pathLenConstraint6subCA0CRL",
1019                               "pathLenConstraint6subsubCA00CRL"};
1020   PkitsTestInfo info;
1021   info.test_number = "4.6.9";
1022   info.should_validate = false;
1023 
1024   this->RunTest(certs, crls, info);
1025 }
1026 
1027 // 4.6.10 Invalid pathLenConstraint Test10
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidpathLenConstraintTest10)1028 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1029                      Section6InvalidpathLenConstraintTest10) {
1030   const char* const certs[] = {
1031       "TrustAnchorRootCertificate", "pathLenConstraint6CACert",
1032       "pathLenConstraint6subCA0Cert", "pathLenConstraint6subsubCA00Cert",
1033       "InvalidpathLenConstraintTest10EE"};
1034   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint6CACRL",
1035                               "pathLenConstraint6subCA0CRL",
1036                               "pathLenConstraint6subsubCA00CRL"};
1037   PkitsTestInfo info;
1038   info.test_number = "4.6.10";
1039   info.should_validate = false;
1040 
1041   this->RunTest(certs, crls, info);
1042 }
1043 
1044 // 4.6.11 Invalid pathLenConstraint Test11
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidpathLenConstraintTest11)1045 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1046                      Section6InvalidpathLenConstraintTest11) {
1047   const char* const certs[] = {"TrustAnchorRootCertificate",
1048                                "pathLenConstraint6CACert",
1049                                "pathLenConstraint6subCA1Cert",
1050                                "pathLenConstraint6subsubCA11Cert",
1051                                "pathLenConstraint6subsubsubCA11XCert",
1052                                "InvalidpathLenConstraintTest11EE"};
1053   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint6CACRL",
1054                               "pathLenConstraint6subCA1CRL",
1055                               "pathLenConstraint6subsubCA11CRL",
1056                               "pathLenConstraint6subsubsubCA11XCRL"};
1057   PkitsTestInfo info;
1058   info.test_number = "4.6.11";
1059   info.should_validate = false;
1060 
1061   this->RunTest(certs, crls, info);
1062 }
1063 
1064 // 4.6.12 Invalid pathLenConstraint Test12
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidpathLenConstraintTest12)1065 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1066                      Section6InvalidpathLenConstraintTest12) {
1067   const char* const certs[] = {"TrustAnchorRootCertificate",
1068                                "pathLenConstraint6CACert",
1069                                "pathLenConstraint6subCA1Cert",
1070                                "pathLenConstraint6subsubCA11Cert",
1071                                "pathLenConstraint6subsubsubCA11XCert",
1072                                "InvalidpathLenConstraintTest12EE"};
1073   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint6CACRL",
1074                               "pathLenConstraint6subCA1CRL",
1075                               "pathLenConstraint6subsubCA11CRL",
1076                               "pathLenConstraint6subsubsubCA11XCRL"};
1077   PkitsTestInfo info;
1078   info.test_number = "4.6.12";
1079   info.should_validate = false;
1080 
1081   this->RunTest(certs, crls, info);
1082 }
1083 
1084 // 4.6.13 Valid pathLenConstraint Test13
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidpathLenConstraintTest13)1085 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1086                      Section6ValidpathLenConstraintTest13) {
1087   const char* const certs[] = {"TrustAnchorRootCertificate",
1088                                "pathLenConstraint6CACert",
1089                                "pathLenConstraint6subCA4Cert",
1090                                "pathLenConstraint6subsubCA41Cert",
1091                                "pathLenConstraint6subsubsubCA41XCert",
1092                                "ValidpathLenConstraintTest13EE"};
1093   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint6CACRL",
1094                               "pathLenConstraint6subCA4CRL",
1095                               "pathLenConstraint6subsubCA41CRL",
1096                               "pathLenConstraint6subsubsubCA41XCRL"};
1097   PkitsTestInfo info;
1098   info.test_number = "4.6.13";
1099   info.should_validate = true;
1100 
1101   this->RunTest(certs, crls, info);
1102 }
1103 
1104 // 4.6.14 Valid pathLenConstraint Test14
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidpathLenConstraintTest14)1105 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1106                      Section6ValidpathLenConstraintTest14) {
1107   const char* const certs[] = {"TrustAnchorRootCertificate",
1108                                "pathLenConstraint6CACert",
1109                                "pathLenConstraint6subCA4Cert",
1110                                "pathLenConstraint6subsubCA41Cert",
1111                                "pathLenConstraint6subsubsubCA41XCert",
1112                                "ValidpathLenConstraintTest14EE"};
1113   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint6CACRL",
1114                               "pathLenConstraint6subCA4CRL",
1115                               "pathLenConstraint6subsubCA41CRL",
1116                               "pathLenConstraint6subsubsubCA41XCRL"};
1117   PkitsTestInfo info;
1118   info.test_number = "4.6.14";
1119   info.should_validate = true;
1120 
1121   this->RunTest(certs, crls, info);
1122 }
1123 
1124 // 4.6.15 Valid Self-Issued pathLenConstraint Test15
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidSelfIssuedpathLenConstraintTest15)1125 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1126                      Section6ValidSelfIssuedpathLenConstraintTest15) {
1127   const char* const certs[] = {"TrustAnchorRootCertificate",
1128                                "pathLenConstraint0CACert",
1129                                "pathLenConstraint0SelfIssuedCACert",
1130                                "ValidSelfIssuedpathLenConstraintTest15EE"};
1131   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint0CACRL"};
1132   PkitsTestInfo info;
1133   info.test_number = "4.6.15";
1134   info.should_validate = true;
1135 
1136   this->RunTest(certs, crls, info);
1137 }
1138 
1139 // 4.6.16 Invalid Self-Issued pathLenConstraint Test16
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6InvalidSelfIssuedpathLenConstraintTest16)1140 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1141                      Section6InvalidSelfIssuedpathLenConstraintTest16) {
1142   const char* const certs[] = {
1143       "TrustAnchorRootCertificate", "pathLenConstraint0CACert",
1144       "pathLenConstraint0SelfIssuedCACert", "pathLenConstraint0subCA2Cert",
1145       "InvalidSelfIssuedpathLenConstraintTest16EE"};
1146   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint0CACRL",
1147                               "pathLenConstraint0subCA2CRL"};
1148   PkitsTestInfo info;
1149   info.test_number = "4.6.16";
1150   info.should_validate = false;
1151 
1152   this->RunTest(certs, crls, info);
1153 }
1154 
1155 // 4.6.17 Valid Self-Issued pathLenConstraint Test17
WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,Section6ValidSelfIssuedpathLenConstraintTest17)1156 WRAPPED_TYPED_TEST_P(PkitsTest06VerifyingBasicConstraints,
1157                      Section6ValidSelfIssuedpathLenConstraintTest17) {
1158   const char* const certs[] = {"TrustAnchorRootCertificate",
1159                                "pathLenConstraint1CACert",
1160                                "pathLenConstraint1SelfIssuedCACert",
1161                                "pathLenConstraint1subCACert",
1162                                "pathLenConstraint1SelfIssuedsubCACert",
1163                                "ValidSelfIssuedpathLenConstraintTest17EE"};
1164   const char* const crls[] = {"TrustAnchorRootCRL", "pathLenConstraint1CACRL",
1165                               "pathLenConstraint1subCACRL"};
1166   PkitsTestInfo info;
1167   info.test_number = "4.6.17";
1168   info.should_validate = true;
1169 
1170   this->RunTest(certs, crls, info);
1171 }
1172 
1173 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
1174     PkitsTest06VerifyingBasicConstraints,
1175     Section6InvalidMissingbasicConstraintsTest1,
1176     Section6InvalidcAFalseTest2,
1177     Section6InvalidcAFalseTest3,
1178     Section6ValidbasicConstraintsNotCriticalTest4,
1179     Section6InvalidpathLenConstraintTest5,
1180     Section6InvalidpathLenConstraintTest6,
1181     Section6ValidpathLenConstraintTest7,
1182     Section6ValidpathLenConstraintTest8,
1183     Section6InvalidpathLenConstraintTest9,
1184     Section6InvalidpathLenConstraintTest10,
1185     Section6InvalidpathLenConstraintTest11,
1186     Section6InvalidpathLenConstraintTest12,
1187     Section6ValidpathLenConstraintTest13,
1188     Section6ValidpathLenConstraintTest14,
1189     Section6ValidSelfIssuedpathLenConstraintTest15,
1190     Section6InvalidSelfIssuedpathLenConstraintTest16,
1191     Section6ValidSelfIssuedpathLenConstraintTest17);
1192 
1193 template <typename PkitsTestDelegate>
1194 class PkitsTest07KeyUsage : public PkitsTest<PkitsTestDelegate> {};
1195 TYPED_TEST_SUITE_P(PkitsTest07KeyUsage);
1196 
1197 // 4.7.1 Invalid keyUsage Critical keyCertSign False Test1
WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,Section7InvalidkeyUsageCriticalkeyCertSignFalseTest1)1198 WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,
1199                      Section7InvalidkeyUsageCriticalkeyCertSignFalseTest1) {
1200   const char* const certs[] = {
1201       "TrustAnchorRootCertificate", "keyUsageCriticalkeyCertSignFalseCACert",
1202       "InvalidkeyUsageCriticalkeyCertSignFalseTest1EE"};
1203   const char* const crls[] = {"TrustAnchorRootCRL",
1204                               "keyUsageCriticalkeyCertSignFalseCACRL"};
1205   PkitsTestInfo info;
1206   info.test_number = "4.7.1";
1207   info.should_validate = false;
1208 
1209   this->RunTest(certs, crls, info);
1210 }
1211 
1212 // 4.7.2 Invalid keyUsage Not Critical keyCertSign False Test2
WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,Section7InvalidkeyUsageNotCriticalkeyCertSignFalseTest2)1213 WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,
1214                      Section7InvalidkeyUsageNotCriticalkeyCertSignFalseTest2) {
1215   const char* const certs[] = {
1216       "TrustAnchorRootCertificate", "keyUsageNotCriticalkeyCertSignFalseCACert",
1217       "InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE"};
1218   const char* const crls[] = {"TrustAnchorRootCRL",
1219                               "keyUsageNotCriticalkeyCertSignFalseCACRL"};
1220   PkitsTestInfo info;
1221   info.test_number = "4.7.2";
1222   info.should_validate = false;
1223 
1224   this->RunTest(certs, crls, info);
1225 }
1226 
1227 // 4.7.3 Valid keyUsage Not Critical Test3
WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,Section7ValidkeyUsageNotCriticalTest3)1228 WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,
1229                      Section7ValidkeyUsageNotCriticalTest3) {
1230   const char* const certs[] = {"TrustAnchorRootCertificate",
1231                                "keyUsageNotCriticalCACert",
1232                                "ValidkeyUsageNotCriticalTest3EE"};
1233   const char* const crls[] = {"TrustAnchorRootCRL", "keyUsageNotCriticalCACRL"};
1234   PkitsTestInfo info;
1235   info.test_number = "4.7.3";
1236   info.should_validate = true;
1237 
1238   this->RunTest(certs, crls, info);
1239 }
1240 
1241 // 4.7.4 Invalid keyUsage Critical cRLSign False Test4
WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,Section7InvalidkeyUsageCriticalcRLSignFalseTest4)1242 WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,
1243                      Section7InvalidkeyUsageCriticalcRLSignFalseTest4) {
1244   const char* const certs[] = {"TrustAnchorRootCertificate",
1245                                "keyUsageCriticalcRLSignFalseCACert",
1246                                "InvalidkeyUsageCriticalcRLSignFalseTest4EE"};
1247   const char* const crls[] = {"TrustAnchorRootCRL",
1248                               "keyUsageCriticalcRLSignFalseCACRL"};
1249   PkitsTestInfo info;
1250   info.test_number = "4.7.4";
1251   info.should_validate = false;
1252 
1253   this->RunTest(certs, crls, info);
1254 }
1255 
1256 // 4.7.5 Invalid keyUsage Not Critical cRLSign False Test5
WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,Section7InvalidkeyUsageNotCriticalcRLSignFalseTest5)1257 WRAPPED_TYPED_TEST_P(PkitsTest07KeyUsage,
1258                      Section7InvalidkeyUsageNotCriticalcRLSignFalseTest5) {
1259   const char* const certs[] = {"TrustAnchorRootCertificate",
1260                                "keyUsageNotCriticalcRLSignFalseCACert",
1261                                "InvalidkeyUsageNotCriticalcRLSignFalseTest5EE"};
1262   const char* const crls[] = {"TrustAnchorRootCRL",
1263                               "keyUsageNotCriticalcRLSignFalseCACRL"};
1264   PkitsTestInfo info;
1265   info.test_number = "4.7.5";
1266   info.should_validate = false;
1267 
1268   this->RunTest(certs, crls, info);
1269 }
1270 
1271 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
1272     PkitsTest07KeyUsage,
1273     Section7InvalidkeyUsageCriticalkeyCertSignFalseTest1,
1274     Section7InvalidkeyUsageNotCriticalkeyCertSignFalseTest2,
1275     Section7ValidkeyUsageNotCriticalTest3,
1276     Section7InvalidkeyUsageCriticalcRLSignFalseTest4,
1277     Section7InvalidkeyUsageNotCriticalcRLSignFalseTest5);
1278 
1279 template <typename PkitsTestDelegate>
1280 class PkitsTest08CertificatePolicies : public PkitsTest<PkitsTestDelegate> {};
1281 TYPED_TEST_SUITE_P(PkitsTest08CertificatePolicies);
1282 
1283 // 4.8.1 All Certificates Same Policy Test1 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePolicyTest1Subpart1)1284 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1285                      Section8AllCertificatesSamePolicyTest1Subpart1) {
1286   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1287                                "ValidCertificatePathTest1EE"};
1288   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1289   PkitsTestInfo info;
1290   info.test_number = "4.8.1";
1291   info.should_validate = true;
1292   info.SetInitialExplicitPolicy(true);
1293 
1294   this->RunTest(certs, crls, info);
1295 }
1296 
1297 // 4.8.1 All Certificates Same Policy Test1 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePolicyTest1Subpart2)1298 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1299                      Section8AllCertificatesSamePolicyTest1Subpart2) {
1300   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1301                                "ValidCertificatePathTest1EE"};
1302   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1303   PkitsTestInfo info;
1304   info.test_number = "4.8.1";
1305   info.should_validate = true;
1306   info.SetInitialPolicySet("NIST-test-policy-1");
1307   info.SetInitialExplicitPolicy(true);
1308 
1309   this->RunTest(certs, crls, info);
1310 }
1311 
1312 // 4.8.1 All Certificates Same Policy Test1 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePolicyTest1Subpart3)1313 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1314                      Section8AllCertificatesSamePolicyTest1Subpart3) {
1315   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1316                                "ValidCertificatePathTest1EE"};
1317   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1318   PkitsTestInfo info;
1319   info.test_number = "4.8.1";
1320   info.should_validate = false;
1321   info.SetInitialPolicySet("NIST-test-policy-2");
1322   info.SetInitialExplicitPolicy(true);
1323   info.SetUserConstrainedPolicySet("");
1324 
1325   this->RunTest(certs, crls, info);
1326 }
1327 
1328 // 4.8.1 All Certificates Same Policy Test1 (Subpart 4)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePolicyTest1Subpart4)1329 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1330                      Section8AllCertificatesSamePolicyTest1Subpart4) {
1331   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1332                                "ValidCertificatePathTest1EE"};
1333   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1334   PkitsTestInfo info;
1335   info.test_number = "4.8.1";
1336   info.should_validate = true;
1337   info.SetInitialPolicySet("NIST-test-policy-1,NIST-test-policy-2");
1338   info.SetInitialExplicitPolicy(true);
1339 
1340   this->RunTest(certs, crls, info);
1341 }
1342 
1343 // 4.8.2 All Certificates No Policies Test2 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesNoPoliciesTest2Subpart1)1344 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1345                      Section8AllCertificatesNoPoliciesTest2Subpart1) {
1346   const char* const certs[] = {"TrustAnchorRootCertificate", "NoPoliciesCACert",
1347                                "AllCertificatesNoPoliciesTest2EE"};
1348   const char* const crls[] = {"TrustAnchorRootCRL", "NoPoliciesCACRL"};
1349   PkitsTestInfo info;
1350   info.test_number = "4.8.2";
1351   info.should_validate = true;
1352   info.SetUserConstrainedPolicySet("");
1353 
1354   this->RunTest(certs, crls, info);
1355 }
1356 
1357 // 4.8.2 All Certificates No Policies Test2 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesNoPoliciesTest2Subpart2)1358 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1359                      Section8AllCertificatesNoPoliciesTest2Subpart2) {
1360   const char* const certs[] = {"TrustAnchorRootCertificate", "NoPoliciesCACert",
1361                                "AllCertificatesNoPoliciesTest2EE"};
1362   const char* const crls[] = {"TrustAnchorRootCRL", "NoPoliciesCACRL"};
1363   PkitsTestInfo info;
1364   info.test_number = "4.8.2";
1365   info.should_validate = false;
1366   info.SetInitialExplicitPolicy(true);
1367   info.SetUserConstrainedPolicySet("");
1368 
1369   this->RunTest(certs, crls, info);
1370 }
1371 
1372 // 4.8.3 Different Policies Test3 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest3Subpart1)1373 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1374                      Section8DifferentPoliciesTest3Subpart1) {
1375   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1376                                "PoliciesP2subCACert",
1377                                "DifferentPoliciesTest3EE"};
1378   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
1379                               "PoliciesP2subCACRL"};
1380   PkitsTestInfo info;
1381   info.test_number = "4.8.3";
1382   info.should_validate = true;
1383   info.SetUserConstrainedPolicySet("");
1384 
1385   this->RunTest(certs, crls, info);
1386 }
1387 
1388 // 4.8.3 Different Policies Test3 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest3Subpart2)1389 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1390                      Section8DifferentPoliciesTest3Subpart2) {
1391   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1392                                "PoliciesP2subCACert",
1393                                "DifferentPoliciesTest3EE"};
1394   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
1395                               "PoliciesP2subCACRL"};
1396   PkitsTestInfo info;
1397   info.test_number = "4.8.3";
1398   info.should_validate = false;
1399   info.SetInitialExplicitPolicy(true);
1400   info.SetUserConstrainedPolicySet("");
1401 
1402   this->RunTest(certs, crls, info);
1403 }
1404 
1405 // 4.8.3 Different Policies Test3 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest3Subpart3)1406 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1407                      Section8DifferentPoliciesTest3Subpart3) {
1408   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1409                                "PoliciesP2subCACert",
1410                                "DifferentPoliciesTest3EE"};
1411   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
1412                               "PoliciesP2subCACRL"};
1413   PkitsTestInfo info;
1414   info.test_number = "4.8.3";
1415   info.should_validate = false;
1416   info.SetInitialPolicySet("NIST-test-policy-1,NIST-test-policy-2");
1417   info.SetInitialExplicitPolicy(true);
1418   info.SetUserConstrainedPolicySet("");
1419 
1420   this->RunTest(certs, crls, info);
1421 }
1422 
1423 // 4.8.4 Different Policies Test4
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest4)1424 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1425                      Section8DifferentPoliciesTest4) {
1426   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1427                                "GoodsubCACert", "DifferentPoliciesTest4EE"};
1428   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
1429                               "GoodsubCACRL"};
1430   PkitsTestInfo info;
1431   info.test_number = "4.8.4";
1432   info.should_validate = false;
1433   info.SetUserConstrainedPolicySet("");
1434 
1435   this->RunTest(certs, crls, info);
1436 }
1437 
1438 // 4.8.5 Different Policies Test5
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest5)1439 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1440                      Section8DifferentPoliciesTest5) {
1441   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1442                                "PoliciesP2subCA2Cert",
1443                                "DifferentPoliciesTest5EE"};
1444   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
1445                               "PoliciesP2subCA2CRL"};
1446   PkitsTestInfo info;
1447   info.test_number = "4.8.5";
1448   info.should_validate = false;
1449   info.SetUserConstrainedPolicySet("");
1450 
1451   this->RunTest(certs, crls, info);
1452 }
1453 
1454 // 4.8.6 Overlapping Policies Test6 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8OverlappingPoliciesTest6Subpart1)1455 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1456                      Section8OverlappingPoliciesTest6Subpart1) {
1457   const char* const certs[] = {
1458       "TrustAnchorRootCertificate", "PoliciesP1234CACert",
1459       "PoliciesP1234subCAP123Cert", "PoliciesP1234subsubCAP123P12Cert",
1460       "OverlappingPoliciesTest6EE"};
1461   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP1234CACRL",
1462                               "PoliciesP1234subCAP123CRL",
1463                               "PoliciesP1234subsubCAP123P12CRL"};
1464   PkitsTestInfo info;
1465   info.test_number = "4.8.6";
1466   info.should_validate = true;
1467 
1468   this->RunTest(certs, crls, info);
1469 }
1470 
1471 // 4.8.6 Overlapping Policies Test6 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8OverlappingPoliciesTest6Subpart2)1472 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1473                      Section8OverlappingPoliciesTest6Subpart2) {
1474   const char* const certs[] = {
1475       "TrustAnchorRootCertificate", "PoliciesP1234CACert",
1476       "PoliciesP1234subCAP123Cert", "PoliciesP1234subsubCAP123P12Cert",
1477       "OverlappingPoliciesTest6EE"};
1478   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP1234CACRL",
1479                               "PoliciesP1234subCAP123CRL",
1480                               "PoliciesP1234subsubCAP123P12CRL"};
1481   PkitsTestInfo info;
1482   info.test_number = "4.8.6";
1483   info.should_validate = true;
1484   info.SetInitialPolicySet("NIST-test-policy-1");
1485 
1486   this->RunTest(certs, crls, info);
1487 }
1488 
1489 // 4.8.6 Overlapping Policies Test6 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8OverlappingPoliciesTest6Subpart3)1490 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1491                      Section8OverlappingPoliciesTest6Subpart3) {
1492   const char* const certs[] = {
1493       "TrustAnchorRootCertificate", "PoliciesP1234CACert",
1494       "PoliciesP1234subCAP123Cert", "PoliciesP1234subsubCAP123P12Cert",
1495       "OverlappingPoliciesTest6EE"};
1496   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP1234CACRL",
1497                               "PoliciesP1234subCAP123CRL",
1498                               "PoliciesP1234subsubCAP123P12CRL"};
1499   PkitsTestInfo info;
1500   info.test_number = "4.8.6";
1501   info.should_validate = false;
1502   info.SetInitialPolicySet("NIST-test-policy-2");
1503   info.SetUserConstrainedPolicySet("");
1504 
1505   this->RunTest(certs, crls, info);
1506 }
1507 
1508 // 4.8.7 Different Policies Test7
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest7)1509 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1510                      Section8DifferentPoliciesTest7) {
1511   const char* const certs[] = {"TrustAnchorRootCertificate",
1512                                "PoliciesP123CACert", "PoliciesP123subCAP12Cert",
1513                                "PoliciesP123subsubCAP12P1Cert",
1514                                "DifferentPoliciesTest7EE"};
1515   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP123CACRL",
1516                               "PoliciesP123subCAP12CRL",
1517                               "PoliciesP123subsubCAP12P1CRL"};
1518   PkitsTestInfo info;
1519   info.test_number = "4.8.7";
1520   info.should_validate = false;
1521   info.SetUserConstrainedPolicySet("");
1522 
1523   this->RunTest(certs, crls, info);
1524 }
1525 
1526 // 4.8.8 Different Policies Test8
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest8)1527 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1528                      Section8DifferentPoliciesTest8) {
1529   const char* const certs[] = {"TrustAnchorRootCertificate",
1530                                "PoliciesP12CACert", "PoliciesP12subCAP1Cert",
1531                                "PoliciesP12subsubCAP1P2Cert",
1532                                "DifferentPoliciesTest8EE"};
1533   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP12CACRL",
1534                               "PoliciesP12subCAP1CRL",
1535                               "PoliciesP12subsubCAP1P2CRL"};
1536   PkitsTestInfo info;
1537   info.test_number = "4.8.8";
1538   info.should_validate = false;
1539   info.SetUserConstrainedPolicySet("");
1540 
1541   this->RunTest(certs, crls, info);
1542 }
1543 
1544 // 4.8.9 Different Policies Test9
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest9)1545 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1546                      Section8DifferentPoliciesTest9) {
1547   const char* const certs[] = {
1548       "TrustAnchorRootCertificate",         "PoliciesP123CACert",
1549       "PoliciesP123subCAP12Cert",           "PoliciesP123subsubCAP12P2Cert",
1550       "PoliciesP123subsubsubCAP12P2P1Cert", "DifferentPoliciesTest9EE"};
1551   const char* const crls[] = {
1552       "TrustAnchorRootCRL", "PoliciesP123CACRL", "PoliciesP123subCAP12CRL",
1553       "PoliciesP123subsubCAP2P2CRL", "PoliciesP123subsubsubCAP12P2P1CRL"};
1554   PkitsTestInfo info;
1555   info.test_number = "4.8.9";
1556   info.should_validate = false;
1557   info.SetUserConstrainedPolicySet("");
1558 
1559   this->RunTest(certs, crls, info);
1560 }
1561 
1562 // 4.8.10 All Certificates Same Policies Test10 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePoliciesTest10Subpart1)1563 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1564                      Section8AllCertificatesSamePoliciesTest10Subpart1) {
1565   const char* const certs[] = {"TrustAnchorRootCertificate",
1566                                "PoliciesP12CACert",
1567                                "AllCertificatesSamePoliciesTest10EE"};
1568   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP12CACRL"};
1569   PkitsTestInfo info;
1570   info.test_number = "4.8.10";
1571   info.should_validate = true;
1572   info.SetUserConstrainedPolicySet("NIST-test-policy-1,NIST-test-policy-2");
1573 
1574   this->RunTest(certs, crls, info);
1575 }
1576 
1577 // 4.8.10 All Certificates Same Policies Test10 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePoliciesTest10Subpart2)1578 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1579                      Section8AllCertificatesSamePoliciesTest10Subpart2) {
1580   const char* const certs[] = {"TrustAnchorRootCertificate",
1581                                "PoliciesP12CACert",
1582                                "AllCertificatesSamePoliciesTest10EE"};
1583   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP12CACRL"};
1584   PkitsTestInfo info;
1585   info.test_number = "4.8.10";
1586   info.should_validate = true;
1587   info.SetInitialPolicySet("NIST-test-policy-1");
1588 
1589   this->RunTest(certs, crls, info);
1590 }
1591 
1592 // 4.8.10 All Certificates Same Policies Test10 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePoliciesTest10Subpart3)1593 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1594                      Section8AllCertificatesSamePoliciesTest10Subpart3) {
1595   const char* const certs[] = {"TrustAnchorRootCertificate",
1596                                "PoliciesP12CACert",
1597                                "AllCertificatesSamePoliciesTest10EE"};
1598   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP12CACRL"};
1599   PkitsTestInfo info;
1600   info.test_number = "4.8.10";
1601   info.should_validate = true;
1602   info.SetInitialPolicySet("NIST-test-policy-2");
1603   info.SetUserConstrainedPolicySet("NIST-test-policy-2");
1604 
1605   this->RunTest(certs, crls, info);
1606 }
1607 
1608 // 4.8.11 All Certificates AnyPolicy Test11 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesAnyPolicyTest11Subpart1)1609 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1610                      Section8AllCertificatesAnyPolicyTest11Subpart1) {
1611   const char* const certs[] = {"TrustAnchorRootCertificate", "anyPolicyCACert",
1612                                "AllCertificatesanyPolicyTest11EE"};
1613   const char* const crls[] = {"TrustAnchorRootCRL", "anyPolicyCACRL"};
1614   PkitsTestInfo info;
1615   info.test_number = "4.8.11";
1616   info.should_validate = true;
1617   info.SetUserConstrainedPolicySet("anyPolicy");
1618 
1619   this->RunTest(certs, crls, info);
1620 }
1621 
1622 // 4.8.11 All Certificates AnyPolicy Test11 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesAnyPolicyTest11Subpart2)1623 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1624                      Section8AllCertificatesAnyPolicyTest11Subpart2) {
1625   const char* const certs[] = {"TrustAnchorRootCertificate", "anyPolicyCACert",
1626                                "AllCertificatesanyPolicyTest11EE"};
1627   const char* const crls[] = {"TrustAnchorRootCRL", "anyPolicyCACRL"};
1628   PkitsTestInfo info;
1629   info.test_number = "4.8.11";
1630   info.should_validate = true;
1631   info.SetInitialPolicySet("NIST-test-policy-1");
1632 
1633   this->RunTest(certs, crls, info);
1634 }
1635 
1636 // 4.8.12 Different Policies Test12
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8DifferentPoliciesTest12)1637 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1638                      Section8DifferentPoliciesTest12) {
1639   const char* const certs[] = {"TrustAnchorRootCertificate", "PoliciesP3CACert",
1640                                "DifferentPoliciesTest12EE"};
1641   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP3CACRL"};
1642   PkitsTestInfo info;
1643   info.test_number = "4.8.12";
1644   info.should_validate = false;
1645   info.SetUserConstrainedPolicySet("");
1646 
1647   this->RunTest(certs, crls, info);
1648 }
1649 
1650 // 4.8.13 All Certificates Same Policies Test13 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePoliciesTest13Subpart1)1651 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1652                      Section8AllCertificatesSamePoliciesTest13Subpart1) {
1653   const char* const certs[] = {"TrustAnchorRootCertificate",
1654                                "PoliciesP123CACert",
1655                                "AllCertificatesSamePoliciesTest13EE"};
1656   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP123CACRL"};
1657   PkitsTestInfo info;
1658   info.test_number = "4.8.13";
1659   info.should_validate = true;
1660   info.SetInitialPolicySet("NIST-test-policy-1");
1661 
1662   this->RunTest(certs, crls, info);
1663 }
1664 
1665 // 4.8.13 All Certificates Same Policies Test13 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePoliciesTest13Subpart2)1666 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1667                      Section8AllCertificatesSamePoliciesTest13Subpart2) {
1668   const char* const certs[] = {"TrustAnchorRootCertificate",
1669                                "PoliciesP123CACert",
1670                                "AllCertificatesSamePoliciesTest13EE"};
1671   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP123CACRL"};
1672   PkitsTestInfo info;
1673   info.test_number = "4.8.13";
1674   info.should_validate = true;
1675   info.SetInitialPolicySet("NIST-test-policy-2");
1676   info.SetUserConstrainedPolicySet("NIST-test-policy-2");
1677 
1678   this->RunTest(certs, crls, info);
1679 }
1680 
1681 // 4.8.13 All Certificates Same Policies Test13 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AllCertificatesSamePoliciesTest13Subpart3)1682 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1683                      Section8AllCertificatesSamePoliciesTest13Subpart3) {
1684   const char* const certs[] = {"TrustAnchorRootCertificate",
1685                                "PoliciesP123CACert",
1686                                "AllCertificatesSamePoliciesTest13EE"};
1687   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP123CACRL"};
1688   PkitsTestInfo info;
1689   info.test_number = "4.8.13";
1690   info.should_validate = true;
1691   info.SetInitialPolicySet("NIST-test-policy-3");
1692   info.SetUserConstrainedPolicySet("NIST-test-policy-3");
1693 
1694   this->RunTest(certs, crls, info);
1695 }
1696 
1697 // 4.8.14 AnyPolicy Test14 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AnyPolicyTest14Subpart1)1698 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1699                      Section8AnyPolicyTest14Subpart1) {
1700   const char* const certs[] = {"TrustAnchorRootCertificate", "anyPolicyCACert",
1701                                "AnyPolicyTest14EE"};
1702   const char* const crls[] = {"TrustAnchorRootCRL", "anyPolicyCACRL"};
1703   PkitsTestInfo info;
1704   info.test_number = "4.8.14";
1705   info.should_validate = true;
1706   info.SetInitialPolicySet("NIST-test-policy-1");
1707 
1708   this->RunTest(certs, crls, info);
1709 }
1710 
1711 // 4.8.14 AnyPolicy Test14 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8AnyPolicyTest14Subpart2)1712 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1713                      Section8AnyPolicyTest14Subpart2) {
1714   const char* const certs[] = {"TrustAnchorRootCertificate", "anyPolicyCACert",
1715                                "AnyPolicyTest14EE"};
1716   const char* const crls[] = {"TrustAnchorRootCRL", "anyPolicyCACRL"};
1717   PkitsTestInfo info;
1718   info.test_number = "4.8.14";
1719   info.should_validate = false;
1720   info.SetInitialPolicySet("NIST-test-policy-2");
1721   info.SetUserConstrainedPolicySet("");
1722 
1723   this->RunTest(certs, crls, info);
1724 }
1725 
1726 // 4.8.15 User Notice Qualifier Test15
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8UserNoticeQualifierTest15)1727 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1728                      Section8UserNoticeQualifierTest15) {
1729   const char* const certs[] = {"TrustAnchorRootCertificate",
1730                                "UserNoticeQualifierTest15EE"};
1731   const char* const crls[] = {"TrustAnchorRootCRL"};
1732   PkitsTestInfo info;
1733   info.test_number = "4.8.15";
1734   info.should_validate = true;
1735 
1736   this->RunTest(certs, crls, info);
1737 }
1738 
1739 // 4.8.16 User Notice Qualifier Test16
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8UserNoticeQualifierTest16)1740 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1741                      Section8UserNoticeQualifierTest16) {
1742   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1743                                "UserNoticeQualifierTest16EE"};
1744   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1745   PkitsTestInfo info;
1746   info.test_number = "4.8.16";
1747   info.should_validate = true;
1748 
1749   this->RunTest(certs, crls, info);
1750 }
1751 
1752 // 4.8.17 User Notice Qualifier Test17
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8UserNoticeQualifierTest17)1753 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1754                      Section8UserNoticeQualifierTest17) {
1755   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1756                                "UserNoticeQualifierTest17EE"};
1757   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1758   PkitsTestInfo info;
1759   info.test_number = "4.8.17";
1760   info.should_validate = true;
1761 
1762   this->RunTest(certs, crls, info);
1763 }
1764 
1765 // 4.8.18 User Notice Qualifier Test18 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8UserNoticeQualifierTest18Subpart1)1766 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1767                      Section8UserNoticeQualifierTest18Subpart1) {
1768   const char* const certs[] = {"TrustAnchorRootCertificate",
1769                                "PoliciesP12CACert",
1770                                "UserNoticeQualifierTest18EE"};
1771   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP12CACRL"};
1772   PkitsTestInfo info;
1773   info.test_number = "4.8.18";
1774   info.should_validate = true;
1775   info.SetInitialPolicySet("NIST-test-policy-1");
1776 
1777   this->RunTest(certs, crls, info);
1778 }
1779 
1780 // 4.8.18 User Notice Qualifier Test18 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8UserNoticeQualifierTest18Subpart2)1781 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1782                      Section8UserNoticeQualifierTest18Subpart2) {
1783   const char* const certs[] = {"TrustAnchorRootCertificate",
1784                                "PoliciesP12CACert",
1785                                "UserNoticeQualifierTest18EE"};
1786   const char* const crls[] = {"TrustAnchorRootCRL", "PoliciesP12CACRL"};
1787   PkitsTestInfo info;
1788   info.test_number = "4.8.18";
1789   info.should_validate = true;
1790   info.SetInitialPolicySet("NIST-test-policy-2");
1791   info.SetUserConstrainedPolicySet("NIST-test-policy-2");
1792 
1793   this->RunTest(certs, crls, info);
1794 }
1795 
1796 // 4.8.19 User Notice Qualifier Test19
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8UserNoticeQualifierTest19)1797 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1798                      Section8UserNoticeQualifierTest19) {
1799   const char* const certs[] = {"TrustAnchorRootCertificate",
1800                                "UserNoticeQualifierTest19EE"};
1801   const char* const crls[] = {"TrustAnchorRootCRL"};
1802   PkitsTestInfo info;
1803   info.test_number = "4.8.19";
1804   info.should_validate = true;
1805 
1806   this->RunTest(certs, crls, info);
1807 }
1808 
1809 // 4.8.20 CPS Pointer Qualifier Test20
WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,Section8CPSPointerQualifierTest20)1810 WRAPPED_TYPED_TEST_P(PkitsTest08CertificatePolicies,
1811                      Section8CPSPointerQualifierTest20) {
1812   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
1813                                "CPSPointerQualifierTest20EE"};
1814   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
1815   PkitsTestInfo info;
1816   info.test_number = "4.8.20";
1817   info.should_validate = true;
1818   info.SetInitialPolicySet("NIST-test-policy-1");
1819   info.SetInitialExplicitPolicy(true);
1820 
1821   this->RunTest(certs, crls, info);
1822 }
1823 
1824 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
1825     PkitsTest08CertificatePolicies,
1826     Section8AllCertificatesSamePolicyTest1Subpart1,
1827     Section8AllCertificatesSamePolicyTest1Subpart2,
1828     Section8AllCertificatesSamePolicyTest1Subpart3,
1829     Section8AllCertificatesSamePolicyTest1Subpart4,
1830     Section8AllCertificatesNoPoliciesTest2Subpart1,
1831     Section8AllCertificatesNoPoliciesTest2Subpart2,
1832     Section8DifferentPoliciesTest3Subpart1,
1833     Section8DifferentPoliciesTest3Subpart2,
1834     Section8DifferentPoliciesTest3Subpart3,
1835     Section8DifferentPoliciesTest4,
1836     Section8DifferentPoliciesTest5,
1837     Section8OverlappingPoliciesTest6Subpart1,
1838     Section8OverlappingPoliciesTest6Subpart2,
1839     Section8OverlappingPoliciesTest6Subpart3,
1840     Section8DifferentPoliciesTest7,
1841     Section8DifferentPoliciesTest8,
1842     Section8DifferentPoliciesTest9,
1843     Section8AllCertificatesSamePoliciesTest10Subpart1,
1844     Section8AllCertificatesSamePoliciesTest10Subpart2,
1845     Section8AllCertificatesSamePoliciesTest10Subpart3,
1846     Section8AllCertificatesAnyPolicyTest11Subpart1,
1847     Section8AllCertificatesAnyPolicyTest11Subpart2,
1848     Section8DifferentPoliciesTest12,
1849     Section8AllCertificatesSamePoliciesTest13Subpart1,
1850     Section8AllCertificatesSamePoliciesTest13Subpart2,
1851     Section8AllCertificatesSamePoliciesTest13Subpart3,
1852     Section8AnyPolicyTest14Subpart1,
1853     Section8AnyPolicyTest14Subpart2,
1854     Section8UserNoticeQualifierTest15,
1855     Section8UserNoticeQualifierTest16,
1856     Section8UserNoticeQualifierTest17,
1857     Section8UserNoticeQualifierTest18Subpart1,
1858     Section8UserNoticeQualifierTest18Subpart2,
1859     Section8UserNoticeQualifierTest19,
1860     Section8CPSPointerQualifierTest20);
1861 
1862 template <typename PkitsTestDelegate>
1863 class PkitsTest09RequireExplicitPolicy : public PkitsTest<PkitsTestDelegate> {};
1864 TYPED_TEST_SUITE_P(PkitsTest09RequireExplicitPolicy);
1865 
1866 // 4.9.1 Valid RequireExplicitPolicy Test1
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9ValidRequireExplicitPolicyTest1)1867 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1868                      Section9ValidRequireExplicitPolicyTest1) {
1869   const char* const certs[] = {"TrustAnchorRootCertificate",
1870                                "requireExplicitPolicy10CACert",
1871                                "requireExplicitPolicy10subCACert",
1872                                "requireExplicitPolicy10subsubCACert",
1873                                "requireExplicitPolicy10subsubsubCACert",
1874                                "ValidrequireExplicitPolicyTest1EE"};
1875   const char* const crls[] = {
1876       "TrustAnchorRootCRL", "requireExplicitPolicy10CACRL",
1877       "requireExplicitPolicy10subCACRL", "requireExplicitPolicy10subsubCACRL",
1878       "requireExplicitPolicy10subsubsubCACRL"};
1879   PkitsTestInfo info;
1880   info.test_number = "4.9.1";
1881   info.should_validate = true;
1882   info.SetUserConstrainedPolicySet("");
1883 
1884   this->RunTest(certs, crls, info);
1885 }
1886 
1887 // 4.9.2 Valid RequireExplicitPolicy Test2
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9ValidRequireExplicitPolicyTest2)1888 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1889                      Section9ValidRequireExplicitPolicyTest2) {
1890   const char* const certs[] = {"TrustAnchorRootCertificate",
1891                                "requireExplicitPolicy5CACert",
1892                                "requireExplicitPolicy5subCACert",
1893                                "requireExplicitPolicy5subsubCACert",
1894                                "requireExplicitPolicy5subsubsubCACert",
1895                                "ValidrequireExplicitPolicyTest2EE"};
1896   const char* const crls[] = {
1897       "TrustAnchorRootCRL", "requireExplicitPolicy5CACRL",
1898       "requireExplicitPolicy5subCACRL", "requireExplicitPolicy5subsubCACRL",
1899       "requireExplicitPolicy5subsubsubCACRL"};
1900   PkitsTestInfo info;
1901   info.test_number = "4.9.2";
1902   info.should_validate = true;
1903   info.SetUserConstrainedPolicySet("");
1904 
1905   this->RunTest(certs, crls, info);
1906 }
1907 
1908 // 4.9.3 Invalid RequireExplicitPolicy Test3
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9InvalidRequireExplicitPolicyTest3)1909 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1910                      Section9InvalidRequireExplicitPolicyTest3) {
1911   const char* const certs[] = {"TrustAnchorRootCertificate",
1912                                "requireExplicitPolicy4CACert",
1913                                "requireExplicitPolicy4subCACert",
1914                                "requireExplicitPolicy4subsubCACert",
1915                                "requireExplicitPolicy4subsubsubCACert",
1916                                "InvalidrequireExplicitPolicyTest3EE"};
1917   const char* const crls[] = {
1918       "TrustAnchorRootCRL", "requireExplicitPolicy4CACRL",
1919       "requireExplicitPolicy4subCACRL", "requireExplicitPolicy4subsubCACRL",
1920       "requireExplicitPolicy4subsubsubCACRL"};
1921   PkitsTestInfo info;
1922   info.test_number = "4.9.3";
1923   info.should_validate = false;
1924   info.SetUserConstrainedPolicySet("");
1925 
1926   this->RunTest(certs, crls, info);
1927 }
1928 
1929 // 4.9.4 Valid RequireExplicitPolicy Test4
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9ValidRequireExplicitPolicyTest4)1930 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1931                      Section9ValidRequireExplicitPolicyTest4) {
1932   const char* const certs[] = {"TrustAnchorRootCertificate",
1933                                "requireExplicitPolicy0CACert",
1934                                "requireExplicitPolicy0subCACert",
1935                                "requireExplicitPolicy0subsubCACert",
1936                                "requireExplicitPolicy0subsubsubCACert",
1937                                "ValidrequireExplicitPolicyTest4EE"};
1938   const char* const crls[] = {
1939       "TrustAnchorRootCRL", "requireExplicitPolicy0CACRL",
1940       "requireExplicitPolicy0subCACRL", "requireExplicitPolicy0subsubCACRL",
1941       "requireExplicitPolicy0subsubsubCACRL"};
1942   PkitsTestInfo info;
1943   info.test_number = "4.9.4";
1944   info.should_validate = true;
1945 
1946   this->RunTest(certs, crls, info);
1947 }
1948 
1949 // 4.9.5 Invalid RequireExplicitPolicy Test5
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9InvalidRequireExplicitPolicyTest5)1950 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1951                      Section9InvalidRequireExplicitPolicyTest5) {
1952   const char* const certs[] = {"TrustAnchorRootCertificate",
1953                                "requireExplicitPolicy7CACert",
1954                                "requireExplicitPolicy7subCARE2Cert",
1955                                "requireExplicitPolicy7subsubCARE2RE4Cert",
1956                                "requireExplicitPolicy7subsubsubCARE2RE4Cert",
1957                                "InvalidrequireExplicitPolicyTest5EE"};
1958   const char* const crls[] = {"TrustAnchorRootCRL",
1959                               "requireExplicitPolicy7CACRL",
1960                               "requireExplicitPolicy7subCARE2CRL",
1961                               "requireExplicitPolicy7subsubCARE2RE4CRL",
1962                               "requireExplicitPolicy7subsubsubCARE2RE4CRL"};
1963   PkitsTestInfo info;
1964   info.test_number = "4.9.5";
1965   info.should_validate = false;
1966   info.SetUserConstrainedPolicySet("");
1967 
1968   this->RunTest(certs, crls, info);
1969 }
1970 
1971 // 4.9.6 Valid Self-Issued requireExplicitPolicy Test6
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9ValidSelfIssuedrequireExplicitPolicyTest6)1972 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1973                      Section9ValidSelfIssuedrequireExplicitPolicyTest6) {
1974   const char* const certs[] = {"TrustAnchorRootCertificate",
1975                                "requireExplicitPolicy2CACert",
1976                                "requireExplicitPolicy2SelfIssuedCACert",
1977                                "ValidSelfIssuedrequireExplicitPolicyTest6EE"};
1978   const char* const crls[] = {"TrustAnchorRootCRL",
1979                               "requireExplicitPolicy2CACRL"};
1980   PkitsTestInfo info;
1981   info.test_number = "4.9.6";
1982   info.should_validate = true;
1983   info.SetUserConstrainedPolicySet("");
1984 
1985   this->RunTest(certs, crls, info);
1986 }
1987 
1988 // 4.9.7 Invalid Self-Issued requireExplicitPolicy Test7
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9InvalidSelfIssuedrequireExplicitPolicyTest7)1989 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
1990                      Section9InvalidSelfIssuedrequireExplicitPolicyTest7) {
1991   const char* const certs[] = {"TrustAnchorRootCertificate",
1992                                "requireExplicitPolicy2CACert",
1993                                "requireExplicitPolicy2SelfIssuedCACert",
1994                                "requireExplicitPolicy2subCACert",
1995                                "InvalidSelfIssuedrequireExplicitPolicyTest7EE"};
1996   const char* const crls[] = {"TrustAnchorRootCRL",
1997                               "requireExplicitPolicy2CACRL",
1998                               "requireExplicitPolicy2subCACRL"};
1999   PkitsTestInfo info;
2000   info.test_number = "4.9.7";
2001   info.should_validate = false;
2002   info.SetUserConstrainedPolicySet("");
2003 
2004   this->RunTest(certs, crls, info);
2005 }
2006 
2007 // 4.9.8 Invalid Self-Issued requireExplicitPolicy Test8
WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,Section9InvalidSelfIssuedrequireExplicitPolicyTest8)2008 WRAPPED_TYPED_TEST_P(PkitsTest09RequireExplicitPolicy,
2009                      Section9InvalidSelfIssuedrequireExplicitPolicyTest8) {
2010   const char* const certs[] = {"TrustAnchorRootCertificate",
2011                                "requireExplicitPolicy2CACert",
2012                                "requireExplicitPolicy2SelfIssuedCACert",
2013                                "requireExplicitPolicy2subCACert",
2014                                "requireExplicitPolicy2SelfIssuedsubCACert",
2015                                "InvalidSelfIssuedrequireExplicitPolicyTest8EE"};
2016   const char* const crls[] = {"TrustAnchorRootCRL",
2017                               "requireExplicitPolicy2CACRL",
2018                               "requireExplicitPolicy2subCACRL"};
2019   PkitsTestInfo info;
2020   info.test_number = "4.9.8";
2021   info.should_validate = false;
2022   info.SetUserConstrainedPolicySet("");
2023 
2024   this->RunTest(certs, crls, info);
2025 }
2026 
2027 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
2028     PkitsTest09RequireExplicitPolicy,
2029     Section9ValidRequireExplicitPolicyTest1,
2030     Section9ValidRequireExplicitPolicyTest2,
2031     Section9InvalidRequireExplicitPolicyTest3,
2032     Section9ValidRequireExplicitPolicyTest4,
2033     Section9InvalidRequireExplicitPolicyTest5,
2034     Section9ValidSelfIssuedrequireExplicitPolicyTest6,
2035     Section9InvalidSelfIssuedrequireExplicitPolicyTest7,
2036     Section9InvalidSelfIssuedrequireExplicitPolicyTest8);
2037 
2038 template <typename PkitsTestDelegate>
2039 class PkitsTest10PolicyMappings : public PkitsTest<PkitsTestDelegate> {};
2040 TYPED_TEST_SUITE_P(PkitsTest10PolicyMappings);
2041 
2042 // 4.10.1 Valid Policy Mapping Test1 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest1Subpart1)2043 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2044                      Section10ValidPolicyMappingTest1Subpart1) {
2045   const char* const certs[] = {"TrustAnchorRootCertificate",
2046                                "Mapping1to2CACert",
2047                                "ValidPolicyMappingTest1EE"};
2048   const char* const crls[] = {"TrustAnchorRootCRL", "Mapping1to2CACRL"};
2049   PkitsTestInfo info;
2050   info.test_number = "4.10.1.1";
2051   info.should_validate = true;
2052   info.SetInitialPolicySet("NIST-test-policy-1");
2053 
2054   this->RunTest(certs, crls, info);
2055 }
2056 
2057 // 4.10.1 Valid Policy Mapping Test1 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest1Subpart2)2058 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2059                      Section10ValidPolicyMappingTest1Subpart2) {
2060   const char* const certs[] = {"TrustAnchorRootCertificate",
2061                                "Mapping1to2CACert",
2062                                "ValidPolicyMappingTest1EE"};
2063   const char* const crls[] = {"TrustAnchorRootCRL", "Mapping1to2CACRL"};
2064   PkitsTestInfo info;
2065   info.test_number = "4.10.1.2";
2066   info.should_validate = false;
2067   info.SetInitialPolicySet("NIST-test-policy-2");
2068   info.SetUserConstrainedPolicySet("");
2069 
2070   this->RunTest(certs, crls, info);
2071 }
2072 
2073 // 4.10.1 Valid Policy Mapping Test1 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest1Subpart3)2074 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2075                      Section10ValidPolicyMappingTest1Subpart3) {
2076   const char* const certs[] = {"TrustAnchorRootCertificate",
2077                                "Mapping1to2CACert",
2078                                "ValidPolicyMappingTest1EE"};
2079   const char* const crls[] = {"TrustAnchorRootCRL", "Mapping1to2CACRL"};
2080   PkitsTestInfo info;
2081   info.test_number = "4.10.1.3";
2082   info.should_validate = false;
2083   info.SetInitialPolicyMappingInhibit(true);
2084   info.SetUserConstrainedPolicySet("");
2085 
2086   this->RunTest(certs, crls, info);
2087 }
2088 
2089 // 4.10.2 Invalid Policy Mapping Test2 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10InvalidPolicyMappingTest2Subpart1)2090 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2091                      Section10InvalidPolicyMappingTest2Subpart1) {
2092   const char* const certs[] = {"TrustAnchorRootCertificate",
2093                                "Mapping1to2CACert",
2094                                "InvalidPolicyMappingTest2EE"};
2095   const char* const crls[] = {"TrustAnchorRootCRL", "Mapping1to2CACRL"};
2096   PkitsTestInfo info;
2097   info.test_number = "4.10.2";
2098   info.should_validate = false;
2099   info.SetUserConstrainedPolicySet("");
2100 
2101   this->RunTest(certs, crls, info);
2102 }
2103 
2104 // 4.10.2 Invalid Policy Mapping Test2 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10InvalidPolicyMappingTest2Subpart2)2105 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2106                      Section10InvalidPolicyMappingTest2Subpart2) {
2107   const char* const certs[] = {"TrustAnchorRootCertificate",
2108                                "Mapping1to2CACert",
2109                                "InvalidPolicyMappingTest2EE"};
2110   const char* const crls[] = {"TrustAnchorRootCRL", "Mapping1to2CACRL"};
2111   PkitsTestInfo info;
2112   info.test_number = "4.10.2";
2113   info.should_validate = false;
2114   info.SetInitialPolicyMappingInhibit(true);
2115   info.SetUserConstrainedPolicySet("");
2116 
2117   this->RunTest(certs, crls, info);
2118 }
2119 
2120 // 4.10.3 Valid Policy Mapping Test3 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest3Subpart1)2121 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2122                      Section10ValidPolicyMappingTest3Subpart1) {
2123   const char* const certs[] = {
2124       "TrustAnchorRootCertificate", "P12Mapping1to3CACert",
2125       "P12Mapping1to3subCACert", "P12Mapping1to3subsubCACert",
2126       "ValidPolicyMappingTest3EE"};
2127   const char* const crls[] = {"TrustAnchorRootCRL", "P12Mapping1to3CACRL",
2128                               "P12Mapping1to3subCACRL",
2129                               "P12Mapping1to3subsubCACRL"};
2130   PkitsTestInfo info;
2131   info.test_number = "4.10.3";
2132   info.should_validate = false;
2133   info.SetInitialPolicySet("NIST-test-policy-1");
2134   info.SetUserConstrainedPolicySet("");
2135 
2136   this->RunTest(certs, crls, info);
2137 }
2138 
2139 // 4.10.3 Valid Policy Mapping Test3 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest3Subpart2)2140 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2141                      Section10ValidPolicyMappingTest3Subpart2) {
2142   const char* const certs[] = {
2143       "TrustAnchorRootCertificate", "P12Mapping1to3CACert",
2144       "P12Mapping1to3subCACert", "P12Mapping1to3subsubCACert",
2145       "ValidPolicyMappingTest3EE"};
2146   const char* const crls[] = {"TrustAnchorRootCRL", "P12Mapping1to3CACRL",
2147                               "P12Mapping1to3subCACRL",
2148                               "P12Mapping1to3subsubCACRL"};
2149   PkitsTestInfo info;
2150   info.test_number = "4.10.3";
2151   info.should_validate = true;
2152   info.SetInitialPolicySet("NIST-test-policy-2");
2153   info.SetUserConstrainedPolicySet("NIST-test-policy-2");
2154 
2155   this->RunTest(certs, crls, info);
2156 }
2157 
2158 // 4.10.4 Invalid Policy Mapping Test4
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10InvalidPolicyMappingTest4)2159 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2160                      Section10InvalidPolicyMappingTest4) {
2161   const char* const certs[] = {
2162       "TrustAnchorRootCertificate", "P12Mapping1to3CACert",
2163       "P12Mapping1to3subCACert", "P12Mapping1to3subsubCACert",
2164       "InvalidPolicyMappingTest4EE"};
2165   const char* const crls[] = {"TrustAnchorRootCRL", "P12Mapping1to3CACRL",
2166                               "P12Mapping1to3subCACRL",
2167                               "P12Mapping1to3subsubCACRL"};
2168   PkitsTestInfo info;
2169   info.test_number = "4.10.4";
2170   info.should_validate = false;
2171   info.SetUserConstrainedPolicySet("");
2172 
2173   this->RunTest(certs, crls, info);
2174 }
2175 
2176 // 4.10.5 Valid Policy Mapping Test5 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest5Subpart1)2177 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2178                      Section10ValidPolicyMappingTest5Subpart1) {
2179   const char* const certs[] = {
2180       "TrustAnchorRootCertificate", "P1Mapping1to234CACert",
2181       "P1Mapping1to234subCACert", "ValidPolicyMappingTest5EE"};
2182   const char* const crls[] = {"TrustAnchorRootCRL", "P1Mapping1to234CACRL",
2183                               "P1Mapping1to234subCACRL"};
2184   PkitsTestInfo info;
2185   info.test_number = "4.10.5";
2186   info.should_validate = true;
2187   info.SetInitialPolicySet("NIST-test-policy-1");
2188 
2189   this->RunTest(certs, crls, info);
2190 }
2191 
2192 // 4.10.5 Valid Policy Mapping Test5 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest5Subpart2)2193 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2194                      Section10ValidPolicyMappingTest5Subpart2) {
2195   const char* const certs[] = {
2196       "TrustAnchorRootCertificate", "P1Mapping1to234CACert",
2197       "P1Mapping1to234subCACert", "ValidPolicyMappingTest5EE"};
2198   const char* const crls[] = {"TrustAnchorRootCRL", "P1Mapping1to234CACRL",
2199                               "P1Mapping1to234subCACRL"};
2200   PkitsTestInfo info;
2201   info.test_number = "4.10.5";
2202   info.should_validate = false;
2203   info.SetInitialPolicySet("NIST-test-policy-6");
2204   info.SetUserConstrainedPolicySet("");
2205 
2206   this->RunTest(certs, crls, info);
2207 }
2208 
2209 // 4.10.6 Valid Policy Mapping Test6 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest6Subpart1)2210 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2211                      Section10ValidPolicyMappingTest6Subpart1) {
2212   const char* const certs[] = {
2213       "TrustAnchorRootCertificate", "P1Mapping1to234CACert",
2214       "P1Mapping1to234subCACert", "ValidPolicyMappingTest6EE"};
2215   const char* const crls[] = {"TrustAnchorRootCRL", "P1Mapping1to234CACRL",
2216                               "P1Mapping1to234subCACRL"};
2217   PkitsTestInfo info;
2218   info.test_number = "4.10.6";
2219   info.should_validate = true;
2220   info.SetInitialPolicySet("NIST-test-policy-1");
2221 
2222   this->RunTest(certs, crls, info);
2223 }
2224 
2225 // 4.10.6 Valid Policy Mapping Test6 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest6Subpart2)2226 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2227                      Section10ValidPolicyMappingTest6Subpart2) {
2228   const char* const certs[] = {
2229       "TrustAnchorRootCertificate", "P1Mapping1to234CACert",
2230       "P1Mapping1to234subCACert", "ValidPolicyMappingTest6EE"};
2231   const char* const crls[] = {"TrustAnchorRootCRL", "P1Mapping1to234CACRL",
2232                               "P1Mapping1to234subCACRL"};
2233   PkitsTestInfo info;
2234   info.test_number = "4.10.6";
2235   info.should_validate = false;
2236   info.SetInitialPolicySet("NIST-test-policy-6");
2237   info.SetUserConstrainedPolicySet("");
2238 
2239   this->RunTest(certs, crls, info);
2240 }
2241 
2242 // 4.10.7 Invalid Mapping From anyPolicy Test7
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10InvalidMappingFromanyPolicyTest7)2243 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2244                      Section10InvalidMappingFromanyPolicyTest7) {
2245   const char* const certs[] = {"TrustAnchorRootCertificate",
2246                                "MappingFromanyPolicyCACert",
2247                                "InvalidMappingFromanyPolicyTest7EE"};
2248   const char* const crls[] = {"TrustAnchorRootCRL",
2249                               "MappingFromanyPolicyCACRL"};
2250   PkitsTestInfo info;
2251   info.test_number = "4.10.7";
2252   info.should_validate = false;
2253   info.SetUserConstrainedPolicySet("");
2254 
2255   this->RunTest(certs, crls, info);
2256 }
2257 
2258 // 4.10.8 Invalid Mapping To anyPolicy Test8
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10InvalidMappingToanyPolicyTest8)2259 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2260                      Section10InvalidMappingToanyPolicyTest8) {
2261   const char* const certs[] = {"TrustAnchorRootCertificate",
2262                                "MappingToanyPolicyCACert",
2263                                "InvalidMappingToanyPolicyTest8EE"};
2264   const char* const crls[] = {"TrustAnchorRootCRL", "MappingToanyPolicyCACRL"};
2265   PkitsTestInfo info;
2266   info.test_number = "4.10.8";
2267   info.should_validate = false;
2268   info.SetUserConstrainedPolicySet("");
2269 
2270   this->RunTest(certs, crls, info);
2271 }
2272 
2273 // 4.10.9 Valid Policy Mapping Test9
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest9)2274 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2275                      Section10ValidPolicyMappingTest9) {
2276   const char* const certs[] = {"TrustAnchorRootCertificate",
2277                                "PanyPolicyMapping1to2CACert",
2278                                "ValidPolicyMappingTest9EE"};
2279   const char* const crls[] = {"TrustAnchorRootCRL",
2280                               "PanyPolicyMapping1to2CACRL"};
2281   PkitsTestInfo info;
2282   info.test_number = "4.10.9";
2283   info.should_validate = true;
2284 
2285   this->RunTest(certs, crls, info);
2286 }
2287 
2288 // 4.10.10 Invalid Policy Mapping Test10
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10InvalidPolicyMappingTest10)2289 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2290                      Section10InvalidPolicyMappingTest10) {
2291   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
2292                                "GoodsubCAPanyPolicyMapping1to2CACert",
2293                                "InvalidPolicyMappingTest10EE"};
2294   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
2295                               "GoodsubCAPanyPolicyMapping1to2CACRL"};
2296   PkitsTestInfo info;
2297   info.test_number = "4.10.10";
2298   info.should_validate = false;
2299   info.SetUserConstrainedPolicySet("");
2300 
2301   this->RunTest(certs, crls, info);
2302 }
2303 
2304 // 4.10.11 Valid Policy Mapping Test11
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest11)2305 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2306                      Section10ValidPolicyMappingTest11) {
2307   const char* const certs[] = {"TrustAnchorRootCertificate", "GoodCACert",
2308                                "GoodsubCAPanyPolicyMapping1to2CACert",
2309                                "ValidPolicyMappingTest11EE"};
2310   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL",
2311                               "GoodsubCAPanyPolicyMapping1to2CACRL"};
2312   PkitsTestInfo info;
2313   info.test_number = "4.10.11";
2314   info.should_validate = true;
2315 
2316   this->RunTest(certs, crls, info);
2317 }
2318 
2319 // 4.10.12 Valid Policy Mapping Test12 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest12Subpart1)2320 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2321                      Section10ValidPolicyMappingTest12Subpart1) {
2322   const char* const certs[] = {"TrustAnchorRootCertificate",
2323                                "P12Mapping1to3CACert",
2324                                "ValidPolicyMappingTest12EE"};
2325   const char* const crls[] = {"TrustAnchorRootCRL", "P12Mapping1to3CACRL"};
2326   PkitsTestInfo info;
2327   info.test_number = "4.10.12";
2328   info.should_validate = true;
2329   info.SetInitialPolicySet("NIST-test-policy-1");
2330 
2331   this->RunTest(certs, crls, info);
2332 }
2333 
2334 // 4.10.12 Valid Policy Mapping Test12 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest12Subpart2)2335 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2336                      Section10ValidPolicyMappingTest12Subpart2) {
2337   const char* const certs[] = {"TrustAnchorRootCertificate",
2338                                "P12Mapping1to3CACert",
2339                                "ValidPolicyMappingTest12EE"};
2340   const char* const crls[] = {"TrustAnchorRootCRL", "P12Mapping1to3CACRL"};
2341   PkitsTestInfo info;
2342   info.test_number = "4.10.12";
2343   info.should_validate = true;
2344   info.SetInitialPolicySet("NIST-test-policy-2");
2345   info.SetUserConstrainedPolicySet("NIST-test-policy-2");
2346 
2347   this->RunTest(certs, crls, info);
2348 }
2349 
2350 // 4.10.13 Valid Policy Mapping Test13 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest13Subpart1)2351 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2352                      Section10ValidPolicyMappingTest13Subpart1) {
2353   const char* const certs[] = {"TrustAnchorRootCertificate",
2354                                "P1anyPolicyMapping1to2CACert",
2355                                "ValidPolicyMappingTest13EE"};
2356   const char* const crls[] = {"TrustAnchorRootCRL",
2357                               "P1anyPolicyMapping1to2CACRL"};
2358   PkitsTestInfo info;
2359   info.test_number = "4.10.13";
2360   info.should_validate = true;
2361 
2362   this->RunTest(certs, crls, info);
2363 }
2364 
2365 // 4.10.13 Valid Policy Mapping Test13 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest13Subpart2)2366 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2367                      Section10ValidPolicyMappingTest13Subpart2) {
2368   const char* const certs[] = {"TrustAnchorRootCertificate",
2369                                "P1anyPolicyMapping1to2CACert",
2370                                "ValidPolicyMappingTest13EE"};
2371   const char* const crls[] = {"TrustAnchorRootCRL",
2372                               "P1anyPolicyMapping1to2CACRL"};
2373   PkitsTestInfo info;
2374   info.test_number = "4.10.13";
2375   info.should_validate = true;
2376   info.SetInitialPolicySet("NIST-test-policy-1,NIST-test-policy-2");
2377 
2378   this->RunTest(certs, crls, info);
2379 }
2380 
2381 // 4.10.13 Valid Policy Mapping Test13 (Subpart 3)
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest13Subpart3)2382 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2383                      Section10ValidPolicyMappingTest13Subpart3) {
2384   const char* const certs[] = {"TrustAnchorRootCertificate",
2385                                "P1anyPolicyMapping1to2CACert",
2386                                "ValidPolicyMappingTest13EE"};
2387   const char* const crls[] = {"TrustAnchorRootCRL",
2388                               "P1anyPolicyMapping1to2CACRL"};
2389   PkitsTestInfo info;
2390   info.test_number = "4.10.13";
2391   info.should_validate = false;
2392   info.SetInitialPolicySet("NIST-test-policy-2");
2393   info.SetUserConstrainedPolicySet("");
2394 
2395   this->RunTest(certs, crls, info);
2396 }
2397 
2398 // 4.10.14 Valid Policy Mapping Test14
WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,Section10ValidPolicyMappingTest14)2399 WRAPPED_TYPED_TEST_P(PkitsTest10PolicyMappings,
2400                      Section10ValidPolicyMappingTest14) {
2401   const char* const certs[] = {"TrustAnchorRootCertificate",
2402                                "P1anyPolicyMapping1to2CACert",
2403                                "ValidPolicyMappingTest14EE"};
2404   const char* const crls[] = {"TrustAnchorRootCRL",
2405                               "P1anyPolicyMapping1to2CACRL"};
2406   PkitsTestInfo info;
2407   info.test_number = "4.10.14";
2408   info.should_validate = true;
2409 
2410   this->RunTest(certs, crls, info);
2411 }
2412 
2413 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(PkitsTest10PolicyMappings,
2414                                     Section10ValidPolicyMappingTest1Subpart1,
2415                                     Section10ValidPolicyMappingTest1Subpart2,
2416                                     Section10ValidPolicyMappingTest1Subpart3,
2417                                     Section10InvalidPolicyMappingTest2Subpart1,
2418                                     Section10InvalidPolicyMappingTest2Subpart2,
2419                                     Section10ValidPolicyMappingTest3Subpart1,
2420                                     Section10ValidPolicyMappingTest3Subpart2,
2421                                     Section10InvalidPolicyMappingTest4,
2422                                     Section10ValidPolicyMappingTest5Subpart1,
2423                                     Section10ValidPolicyMappingTest5Subpart2,
2424                                     Section10ValidPolicyMappingTest6Subpart1,
2425                                     Section10ValidPolicyMappingTest6Subpart2,
2426                                     Section10InvalidMappingFromanyPolicyTest7,
2427                                     Section10InvalidMappingToanyPolicyTest8,
2428                                     Section10ValidPolicyMappingTest9,
2429                                     Section10InvalidPolicyMappingTest10,
2430                                     Section10ValidPolicyMappingTest11,
2431                                     Section10ValidPolicyMappingTest12Subpart1,
2432                                     Section10ValidPolicyMappingTest12Subpart2,
2433                                     Section10ValidPolicyMappingTest13Subpart1,
2434                                     Section10ValidPolicyMappingTest13Subpart2,
2435                                     Section10ValidPolicyMappingTest13Subpart3,
2436                                     Section10ValidPolicyMappingTest14);
2437 
2438 template <typename PkitsTestDelegate>
2439 class PkitsTest11InhibitPolicyMapping : public PkitsTest<PkitsTestDelegate> {};
2440 TYPED_TEST_SUITE_P(PkitsTest11InhibitPolicyMapping);
2441 
2442 // 4.11.1 Invalid inhibitPolicyMapping Test1
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidinhibitPolicyMappingTest1)2443 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2444                      Section11InvalidinhibitPolicyMappingTest1) {
2445   const char* const certs[] = {
2446       "TrustAnchorRootCertificate", "inhibitPolicyMapping0CACert",
2447       "inhibitPolicyMapping0subCACert", "InvalidinhibitPolicyMappingTest1EE"};
2448   const char* const crls[] = {"TrustAnchorRootCRL",
2449                               "inhibitPolicyMapping0CACRL",
2450                               "inhibitPolicyMapping0subCACRL"};
2451   PkitsTestInfo info;
2452   info.test_number = "4.11.1";
2453   info.should_validate = false;
2454   info.SetUserConstrainedPolicySet("");
2455 
2456   this->RunTest(certs, crls, info);
2457 }
2458 
2459 // 4.11.2 Valid inhibitPolicyMapping Test2
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11ValidinhibitPolicyMappingTest2)2460 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2461                      Section11ValidinhibitPolicyMappingTest2) {
2462   const char* const certs[] = {
2463       "TrustAnchorRootCertificate", "inhibitPolicyMapping1P12CACert",
2464       "inhibitPolicyMapping1P12subCACert", "ValidinhibitPolicyMappingTest2EE"};
2465   const char* const crls[] = {"TrustAnchorRootCRL",
2466                               "inhibitPolicyMapping1P12CACRL",
2467                               "inhibitPolicyMapping1P12subCACRL"};
2468   PkitsTestInfo info;
2469   info.test_number = "4.11.2";
2470   info.should_validate = true;
2471 
2472   this->RunTest(certs, crls, info);
2473 }
2474 
2475 // 4.11.3 Invalid inhibitPolicyMapping Test3
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidinhibitPolicyMappingTest3)2476 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2477                      Section11InvalidinhibitPolicyMappingTest3) {
2478   const char* const certs[] = {"TrustAnchorRootCertificate",
2479                                "inhibitPolicyMapping1P12CACert",
2480                                "inhibitPolicyMapping1P12subCACert",
2481                                "inhibitPolicyMapping1P12subsubCACert",
2482                                "InvalidinhibitPolicyMappingTest3EE"};
2483   const char* const crls[] = {"TrustAnchorRootCRL",
2484                               "inhibitPolicyMapping1P12CACRL",
2485                               "inhibitPolicyMapping1P12subCACRL",
2486                               "inhibitPolicyMapping1P12subsubCACRL"};
2487   PkitsTestInfo info;
2488   info.test_number = "4.11.3";
2489   info.should_validate = false;
2490   info.SetUserConstrainedPolicySet("");
2491 
2492   this->RunTest(certs, crls, info);
2493 }
2494 
2495 // 4.11.4 Valid inhibitPolicyMapping Test4
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11ValidinhibitPolicyMappingTest4)2496 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2497                      Section11ValidinhibitPolicyMappingTest4) {
2498   const char* const certs[] = {"TrustAnchorRootCertificate",
2499                                "inhibitPolicyMapping1P12CACert",
2500                                "inhibitPolicyMapping1P12subCACert",
2501                                "inhibitPolicyMapping1P12subsubCACert",
2502                                "ValidinhibitPolicyMappingTest4EE"};
2503   const char* const crls[] = {"TrustAnchorRootCRL",
2504                               "inhibitPolicyMapping1P12CACRL",
2505                               "inhibitPolicyMapping1P12subCACRL",
2506                               "inhibitPolicyMapping1P12subsubCACRL"};
2507   PkitsTestInfo info;
2508   info.test_number = "4.11.4";
2509   info.should_validate = true;
2510   info.SetUserConstrainedPolicySet("NIST-test-policy-2");
2511 
2512   this->RunTest(certs, crls, info);
2513 }
2514 
2515 // 4.11.5 Invalid inhibitPolicyMapping Test5
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidinhibitPolicyMappingTest5)2516 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2517                      Section11InvalidinhibitPolicyMappingTest5) {
2518   const char* const certs[] = {"TrustAnchorRootCertificate",
2519                                "inhibitPolicyMapping5CACert",
2520                                "inhibitPolicyMapping5subCACert",
2521                                "inhibitPolicyMapping5subsubCACert",
2522                                "inhibitPolicyMapping5subsubsubCACert",
2523                                "InvalidinhibitPolicyMappingTest5EE"};
2524   const char* const crls[] = {
2525       "TrustAnchorRootCRL", "inhibitPolicyMapping5CACRL",
2526       "inhibitPolicyMapping5subCACRL", "inhibitPolicyMapping5subsubCACRL",
2527       "inhibitPolicyMapping5subsubsubCACRL"};
2528   PkitsTestInfo info;
2529   info.test_number = "4.11.5";
2530   info.should_validate = false;
2531   info.SetUserConstrainedPolicySet("");
2532 
2533   this->RunTest(certs, crls, info);
2534 }
2535 
2536 // 4.11.6 Invalid inhibitPolicyMapping Test6
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidinhibitPolicyMappingTest6)2537 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2538                      Section11InvalidinhibitPolicyMappingTest6) {
2539   const char* const certs[] = {"TrustAnchorRootCertificate",
2540                                "inhibitPolicyMapping1P12CACert",
2541                                "inhibitPolicyMapping1P12subCAIPM5Cert",
2542                                "inhibitPolicyMapping1P12subsubCAIPM5Cert",
2543                                "InvalidinhibitPolicyMappingTest6EE"};
2544   const char* const crls[] = {"TrustAnchorRootCRL",
2545                               "inhibitPolicyMapping1P12CACRL",
2546                               "inhibitPolicyMapping1P12subCAIPM5CRL",
2547                               "inhibitPolicyMapping1P12subsubCAIPM5CRL"};
2548   PkitsTestInfo info;
2549   info.test_number = "4.11.6";
2550   info.should_validate = false;
2551   info.SetUserConstrainedPolicySet("");
2552 
2553   this->RunTest(certs, crls, info);
2554 }
2555 
2556 // 4.11.7 Valid Self-Issued inhibitPolicyMapping Test7
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11ValidSelfIssuedinhibitPolicyMappingTest7)2557 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2558                      Section11ValidSelfIssuedinhibitPolicyMappingTest7) {
2559   const char* const certs[] = {"TrustAnchorRootCertificate",
2560                                "inhibitPolicyMapping1P1CACert",
2561                                "inhibitPolicyMapping1P1SelfIssuedCACert",
2562                                "inhibitPolicyMapping1P1subCACert",
2563                                "ValidSelfIssuedinhibitPolicyMappingTest7EE"};
2564   const char* const crls[] = {"TrustAnchorRootCRL",
2565                               "inhibitPolicyMapping1P1CACRL",
2566                               "inhibitPolicyMapping1P1subCACRL"};
2567   PkitsTestInfo info;
2568   info.test_number = "4.11.7";
2569   info.should_validate = true;
2570 
2571   this->RunTest(certs, crls, info);
2572 }
2573 
2574 // 4.11.8 Invalid Self-Issued inhibitPolicyMapping Test8
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidSelfIssuedinhibitPolicyMappingTest8)2575 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2576                      Section11InvalidSelfIssuedinhibitPolicyMappingTest8) {
2577   const char* const certs[] = {"TrustAnchorRootCertificate",
2578                                "inhibitPolicyMapping1P1CACert",
2579                                "inhibitPolicyMapping1P1SelfIssuedCACert",
2580                                "inhibitPolicyMapping1P1subCACert",
2581                                "inhibitPolicyMapping1P1subsubCACert",
2582                                "InvalidSelfIssuedinhibitPolicyMappingTest8EE"};
2583   const char* const crls[] = {
2584       "TrustAnchorRootCRL", "inhibitPolicyMapping1P1CACRL",
2585       "inhibitPolicyMapping1P1subCACRL", "inhibitPolicyMapping1P1subsubCACRL"};
2586   PkitsTestInfo info;
2587   info.test_number = "4.11.8";
2588   info.should_validate = false;
2589   info.SetUserConstrainedPolicySet("");
2590 
2591   this->RunTest(certs, crls, info);
2592 }
2593 
2594 // 4.11.9 Invalid Self-Issued inhibitPolicyMapping Test9
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidSelfIssuedinhibitPolicyMappingTest9)2595 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2596                      Section11InvalidSelfIssuedinhibitPolicyMappingTest9) {
2597   const char* const certs[] = {"TrustAnchorRootCertificate",
2598                                "inhibitPolicyMapping1P1CACert",
2599                                "inhibitPolicyMapping1P1SelfIssuedCACert",
2600                                "inhibitPolicyMapping1P1subCACert",
2601                                "inhibitPolicyMapping1P1subsubCACert",
2602                                "InvalidSelfIssuedinhibitPolicyMappingTest9EE"};
2603   const char* const crls[] = {
2604       "TrustAnchorRootCRL", "inhibitPolicyMapping1P1CACRL",
2605       "inhibitPolicyMapping1P1subCACRL", "inhibitPolicyMapping1P1subsubCACRL"};
2606   PkitsTestInfo info;
2607   info.test_number = "4.11.9";
2608   info.should_validate = false;
2609   info.SetUserConstrainedPolicySet("");
2610 
2611   this->RunTest(certs, crls, info);
2612 }
2613 
2614 // 4.11.10 Invalid Self-Issued inhibitPolicyMapping Test10
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidSelfIssuedinhibitPolicyMappingTest10)2615 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2616                      Section11InvalidSelfIssuedinhibitPolicyMappingTest10) {
2617   const char* const certs[] = {"TrustAnchorRootCertificate",
2618                                "inhibitPolicyMapping1P1CACert",
2619                                "inhibitPolicyMapping1P1SelfIssuedCACert",
2620                                "inhibitPolicyMapping1P1subCACert",
2621                                "inhibitPolicyMapping1P1SelfIssuedsubCACert",
2622                                "InvalidSelfIssuedinhibitPolicyMappingTest10EE"};
2623   const char* const crls[] = {"TrustAnchorRootCRL",
2624                               "inhibitPolicyMapping1P1CACRL",
2625                               "inhibitPolicyMapping1P1subCACRL"};
2626   PkitsTestInfo info;
2627   info.test_number = "4.11.10";
2628   info.should_validate = false;
2629   info.SetUserConstrainedPolicySet("");
2630 
2631   this->RunTest(certs, crls, info);
2632 }
2633 
2634 // 4.11.11 Invalid Self-Issued inhibitPolicyMapping Test11
WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,Section11InvalidSelfIssuedinhibitPolicyMappingTest11)2635 WRAPPED_TYPED_TEST_P(PkitsTest11InhibitPolicyMapping,
2636                      Section11InvalidSelfIssuedinhibitPolicyMappingTest11) {
2637   const char* const certs[] = {"TrustAnchorRootCertificate",
2638                                "inhibitPolicyMapping1P1CACert",
2639                                "inhibitPolicyMapping1P1SelfIssuedCACert",
2640                                "inhibitPolicyMapping1P1subCACert",
2641                                "inhibitPolicyMapping1P1SelfIssuedsubCACert",
2642                                "InvalidSelfIssuedinhibitPolicyMappingTest11EE"};
2643   const char* const crls[] = {"TrustAnchorRootCRL",
2644                               "inhibitPolicyMapping1P1CACRL",
2645                               "inhibitPolicyMapping1P1subCACRL"};
2646   PkitsTestInfo info;
2647   info.test_number = "4.11.11";
2648   info.should_validate = false;
2649   info.SetUserConstrainedPolicySet("");
2650 
2651   this->RunTest(certs, crls, info);
2652 }
2653 
2654 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
2655     PkitsTest11InhibitPolicyMapping,
2656     Section11InvalidinhibitPolicyMappingTest1,
2657     Section11ValidinhibitPolicyMappingTest2,
2658     Section11InvalidinhibitPolicyMappingTest3,
2659     Section11ValidinhibitPolicyMappingTest4,
2660     Section11InvalidinhibitPolicyMappingTest5,
2661     Section11InvalidinhibitPolicyMappingTest6,
2662     Section11ValidSelfIssuedinhibitPolicyMappingTest7,
2663     Section11InvalidSelfIssuedinhibitPolicyMappingTest8,
2664     Section11InvalidSelfIssuedinhibitPolicyMappingTest9,
2665     Section11InvalidSelfIssuedinhibitPolicyMappingTest10,
2666     Section11InvalidSelfIssuedinhibitPolicyMappingTest11);
2667 
2668 template <typename PkitsTestDelegate>
2669 class PkitsTest12InhibitAnyPolicy : public PkitsTest<PkitsTestDelegate> {};
2670 TYPED_TEST_SUITE_P(PkitsTest12InhibitAnyPolicy);
2671 
2672 // 4.12.1 Invalid inhibitAnyPolicy Test1
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12InvalidinhibitAnyPolicyTest1)2673 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2674                      Section12InvalidinhibitAnyPolicyTest1) {
2675   const char* const certs[] = {"TrustAnchorRootCertificate",
2676                                "inhibitAnyPolicy0CACert",
2677                                "InvalidinhibitAnyPolicyTest1EE"};
2678   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy0CACRL"};
2679   PkitsTestInfo info;
2680   info.test_number = "4.12.1";
2681   info.should_validate = false;
2682   info.SetUserConstrainedPolicySet("");
2683 
2684   this->RunTest(certs, crls, info);
2685 }
2686 
2687 // 4.12.2 Valid inhibitAnyPolicy Test2
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12ValidinhibitAnyPolicyTest2)2688 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2689                      Section12ValidinhibitAnyPolicyTest2) {
2690   const char* const certs[] = {"TrustAnchorRootCertificate",
2691                                "inhibitAnyPolicy0CACert",
2692                                "ValidinhibitAnyPolicyTest2EE"};
2693   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy0CACRL"};
2694   PkitsTestInfo info;
2695   info.test_number = "4.12.2";
2696   info.should_validate = true;
2697 
2698   this->RunTest(certs, crls, info);
2699 }
2700 
2701 // 4.12.3 inhibitAnyPolicy Test3 (Subpart 1)
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12inhibitAnyPolicyTest3Subpart1)2702 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2703                      Section12inhibitAnyPolicyTest3Subpart1) {
2704   const char* const certs[] = {
2705       "TrustAnchorRootCertificate", "inhibitAnyPolicy1CACert",
2706       "inhibitAnyPolicy1subCA1Cert", "inhibitAnyPolicyTest3EE"};
2707   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2708                               "inhibitAnyPolicy1subCA1CRL"};
2709   PkitsTestInfo info;
2710   info.test_number = "4.12.3";
2711   info.should_validate = true;
2712 
2713   this->RunTest(certs, crls, info);
2714 }
2715 
2716 // 4.12.3 inhibitAnyPolicy Test3 (Subpart 2)
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12inhibitAnyPolicyTest3Subpart2)2717 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2718                      Section12inhibitAnyPolicyTest3Subpart2) {
2719   const char* const certs[] = {
2720       "TrustAnchorRootCertificate", "inhibitAnyPolicy1CACert",
2721       "inhibitAnyPolicy1subCA1Cert", "inhibitAnyPolicyTest3EE"};
2722   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2723                               "inhibitAnyPolicy1subCA1CRL"};
2724   PkitsTestInfo info;
2725   info.test_number = "4.12.3";
2726   info.should_validate = false;
2727   info.SetInitialInhibitAnyPolicy(true);
2728   info.SetUserConstrainedPolicySet("");
2729 
2730   this->RunTest(certs, crls, info);
2731 }
2732 
2733 // 4.12.4 Invalid inhibitAnyPolicy Test4
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12InvalidinhibitAnyPolicyTest4)2734 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2735                      Section12InvalidinhibitAnyPolicyTest4) {
2736   const char* const certs[] = {
2737       "TrustAnchorRootCertificate", "inhibitAnyPolicy1CACert",
2738       "inhibitAnyPolicy1subCA1Cert", "InvalidinhibitAnyPolicyTest4EE"};
2739   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2740                               "inhibitAnyPolicy1subCA1CRL"};
2741   PkitsTestInfo info;
2742   info.test_number = "4.12.4";
2743   info.should_validate = false;
2744   info.SetUserConstrainedPolicySet("");
2745 
2746   this->RunTest(certs, crls, info);
2747 }
2748 
2749 // 4.12.5 Invalid inhibitAnyPolicy Test5
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12InvalidinhibitAnyPolicyTest5)2750 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2751                      Section12InvalidinhibitAnyPolicyTest5) {
2752   const char* const certs[] = {
2753       "TrustAnchorRootCertificate", "inhibitAnyPolicy5CACert",
2754       "inhibitAnyPolicy5subCACert", "inhibitAnyPolicy5subsubCACert",
2755       "InvalidinhibitAnyPolicyTest5EE"};
2756   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy5CACRL",
2757                               "inhibitAnyPolicy5subCACRL",
2758                               "inhibitAnyPolicy5subsubCACRL"};
2759   PkitsTestInfo info;
2760   info.test_number = "4.12.5";
2761   info.should_validate = false;
2762   info.SetUserConstrainedPolicySet("");
2763 
2764   this->RunTest(certs, crls, info);
2765 }
2766 
2767 // 4.12.6 Invalid inhibitAnyPolicy Test6
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12InvalidinhibitAnyPolicyTest6)2768 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2769                      Section12InvalidinhibitAnyPolicyTest6) {
2770   const char* const certs[] = {
2771       "TrustAnchorRootCertificate", "inhibitAnyPolicy1CACert",
2772       "inhibitAnyPolicy1subCAIAP5Cert", "InvalidinhibitAnyPolicyTest6EE"};
2773   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2774                               "inhibitAnyPolicy1subCAIAP5CRL"};
2775   PkitsTestInfo info;
2776   info.test_number = "4.12.6";
2777   info.should_validate = false;
2778   info.SetUserConstrainedPolicySet("");
2779 
2780   this->RunTest(certs, crls, info);
2781 }
2782 
2783 // 4.12.7 Valid Self-Issued inhibitAnyPolicy Test7
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12ValidSelfIssuedinhibitAnyPolicyTest7)2784 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2785                      Section12ValidSelfIssuedinhibitAnyPolicyTest7) {
2786   const char* const certs[] = {
2787       "TrustAnchorRootCertificate", "inhibitAnyPolicy1CACert",
2788       "inhibitAnyPolicy1SelfIssuedCACert", "inhibitAnyPolicy1subCA2Cert",
2789       "ValidSelfIssuedinhibitAnyPolicyTest7EE"};
2790   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2791                               "inhibitAnyPolicy1subCA2CRL"};
2792   PkitsTestInfo info;
2793   info.test_number = "4.12.7";
2794   info.should_validate = true;
2795 
2796   this->RunTest(certs, crls, info);
2797 }
2798 
2799 // 4.12.8 Invalid Self-Issued inhibitAnyPolicy Test8
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12InvalidSelfIssuedinhibitAnyPolicyTest8)2800 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2801                      Section12InvalidSelfIssuedinhibitAnyPolicyTest8) {
2802   const char* const certs[] = {"TrustAnchorRootCertificate",
2803                                "inhibitAnyPolicy1CACert",
2804                                "inhibitAnyPolicy1SelfIssuedCACert",
2805                                "inhibitAnyPolicy1subCA2Cert",
2806                                "inhibitAnyPolicy1subsubCA2Cert",
2807                                "InvalidSelfIssuedinhibitAnyPolicyTest8EE"};
2808   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2809                               "inhibitAnyPolicy1subCA2CRL",
2810                               "inhibitAnyPolicy1subsubCA2CRL"};
2811   PkitsTestInfo info;
2812   info.test_number = "4.12.8";
2813   info.should_validate = false;
2814   info.SetUserConstrainedPolicySet("");
2815 
2816   this->RunTest(certs, crls, info);
2817 }
2818 
2819 // 4.12.9 Valid Self-Issued inhibitAnyPolicy Test9
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12ValidSelfIssuedinhibitAnyPolicyTest9)2820 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2821                      Section12ValidSelfIssuedinhibitAnyPolicyTest9) {
2822   const char* const certs[] = {"TrustAnchorRootCertificate",
2823                                "inhibitAnyPolicy1CACert",
2824                                "inhibitAnyPolicy1SelfIssuedCACert",
2825                                "inhibitAnyPolicy1subCA2Cert",
2826                                "inhibitAnyPolicy1SelfIssuedsubCA2Cert",
2827                                "ValidSelfIssuedinhibitAnyPolicyTest9EE"};
2828   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2829                               "inhibitAnyPolicy1subCA2CRL"};
2830   PkitsTestInfo info;
2831   info.test_number = "4.12.9";
2832   info.should_validate = true;
2833 
2834   this->RunTest(certs, crls, info);
2835 }
2836 
2837 // 4.12.10 Invalid Self-Issued inhibitAnyPolicy Test10
WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,Section12InvalidSelfIssuedinhibitAnyPolicyTest10)2838 WRAPPED_TYPED_TEST_P(PkitsTest12InhibitAnyPolicy,
2839                      Section12InvalidSelfIssuedinhibitAnyPolicyTest10) {
2840   const char* const certs[] = {
2841       "TrustAnchorRootCertificate", "inhibitAnyPolicy1CACert",
2842       "inhibitAnyPolicy1SelfIssuedCACert", "inhibitAnyPolicy1subCA2Cert",
2843       "InvalidSelfIssuedinhibitAnyPolicyTest10EE"};
2844   const char* const crls[] = {"TrustAnchorRootCRL", "inhibitAnyPolicy1CACRL",
2845                               "inhibitAnyPolicy1subCA2CRL"};
2846   PkitsTestInfo info;
2847   info.test_number = "4.12.10";
2848   info.should_validate = false;
2849   info.SetUserConstrainedPolicySet("");
2850 
2851   this->RunTest(certs, crls, info);
2852 }
2853 
2854 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
2855     PkitsTest12InhibitAnyPolicy,
2856     Section12InvalidinhibitAnyPolicyTest1,
2857     Section12ValidinhibitAnyPolicyTest2,
2858     Section12inhibitAnyPolicyTest3Subpart1,
2859     Section12inhibitAnyPolicyTest3Subpart2,
2860     Section12InvalidinhibitAnyPolicyTest4,
2861     Section12InvalidinhibitAnyPolicyTest5,
2862     Section12InvalidinhibitAnyPolicyTest6,
2863     Section12ValidSelfIssuedinhibitAnyPolicyTest7,
2864     Section12InvalidSelfIssuedinhibitAnyPolicyTest8,
2865     Section12ValidSelfIssuedinhibitAnyPolicyTest9,
2866     Section12InvalidSelfIssuedinhibitAnyPolicyTest10);
2867 
2868 template <typename PkitsTestDelegate>
2869 class PkitsTest13NameConstraints : public PkitsTest<PkitsTestDelegate> {};
2870 TYPED_TEST_SUITE_P(PkitsTest13NameConstraints);
2871 
2872 // 4.13.1 Valid DN nameConstraints Test1
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest1)2873 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2874                      Section13ValidDNnameConstraintsTest1) {
2875   const char* const certs[] = {"TrustAnchorRootCertificate",
2876                                "nameConstraintsDN1CACert",
2877                                "ValidDNnameConstraintsTest1EE"};
2878   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL"};
2879   PkitsTestInfo info;
2880   info.test_number = "4.13.1";
2881   info.should_validate = true;
2882 
2883   this->RunTest(certs, crls, info);
2884 }
2885 
2886 // 4.13.2 Invalid DN nameConstraints Test2
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest2)2887 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2888                      Section13InvalidDNnameConstraintsTest2) {
2889   const char* const certs[] = {"TrustAnchorRootCertificate",
2890                                "nameConstraintsDN1CACert",
2891                                "InvalidDNnameConstraintsTest2EE"};
2892   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL"};
2893   PkitsTestInfo info;
2894   info.test_number = "4.13.2";
2895   info.should_validate = false;
2896 
2897   this->RunTest(certs, crls, info);
2898 }
2899 
2900 // 4.13.3 Invalid DN nameConstraints Test3
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest3)2901 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2902                      Section13InvalidDNnameConstraintsTest3) {
2903   const char* const certs[] = {"TrustAnchorRootCertificate",
2904                                "nameConstraintsDN1CACert",
2905                                "InvalidDNnameConstraintsTest3EE"};
2906   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL"};
2907   PkitsTestInfo info;
2908   info.test_number = "4.13.3";
2909   info.should_validate = false;
2910 
2911   this->RunTest(certs, crls, info);
2912 }
2913 
2914 // 4.13.4 Valid DN nameConstraints Test4
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest4)2915 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2916                      Section13ValidDNnameConstraintsTest4) {
2917   const char* const certs[] = {"TrustAnchorRootCertificate",
2918                                "nameConstraintsDN1CACert",
2919                                "ValidDNnameConstraintsTest4EE"};
2920   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL"};
2921   PkitsTestInfo info;
2922   info.test_number = "4.13.4";
2923   info.should_validate = true;
2924 
2925   this->RunTest(certs, crls, info);
2926 }
2927 
2928 // 4.13.5 Valid DN nameConstraints Test5
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest5)2929 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2930                      Section13ValidDNnameConstraintsTest5) {
2931   const char* const certs[] = {"TrustAnchorRootCertificate",
2932                                "nameConstraintsDN2CACert",
2933                                "ValidDNnameConstraintsTest5EE"};
2934   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN2CACRL"};
2935   PkitsTestInfo info;
2936   info.test_number = "4.13.5";
2937   info.should_validate = true;
2938 
2939   this->RunTest(certs, crls, info);
2940 }
2941 
2942 // 4.13.6 Valid DN nameConstraints Test6
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest6)2943 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2944                      Section13ValidDNnameConstraintsTest6) {
2945   const char* const certs[] = {"TrustAnchorRootCertificate",
2946                                "nameConstraintsDN3CACert",
2947                                "ValidDNnameConstraintsTest6EE"};
2948   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN3CACRL"};
2949   PkitsTestInfo info;
2950   info.test_number = "4.13.6";
2951   info.should_validate = true;
2952 
2953   this->RunTest(certs, crls, info);
2954 }
2955 
2956 // 4.13.7 Invalid DN nameConstraints Test7
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest7)2957 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2958                      Section13InvalidDNnameConstraintsTest7) {
2959   const char* const certs[] = {"TrustAnchorRootCertificate",
2960                                "nameConstraintsDN3CACert",
2961                                "InvalidDNnameConstraintsTest7EE"};
2962   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN3CACRL"};
2963   PkitsTestInfo info;
2964   info.test_number = "4.13.7";
2965   info.should_validate = false;
2966 
2967   this->RunTest(certs, crls, info);
2968 }
2969 
2970 // 4.13.8 Invalid DN nameConstraints Test8
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest8)2971 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2972                      Section13InvalidDNnameConstraintsTest8) {
2973   const char* const certs[] = {"TrustAnchorRootCertificate",
2974                                "nameConstraintsDN4CACert",
2975                                "InvalidDNnameConstraintsTest8EE"};
2976   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN4CACRL"};
2977   PkitsTestInfo info;
2978   info.test_number = "4.13.8";
2979   info.should_validate = false;
2980 
2981   this->RunTest(certs, crls, info);
2982 }
2983 
2984 // 4.13.9 Invalid DN nameConstraints Test9
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest9)2985 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
2986                      Section13InvalidDNnameConstraintsTest9) {
2987   const char* const certs[] = {"TrustAnchorRootCertificate",
2988                                "nameConstraintsDN4CACert",
2989                                "InvalidDNnameConstraintsTest9EE"};
2990   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN4CACRL"};
2991   PkitsTestInfo info;
2992   info.test_number = "4.13.9";
2993   info.should_validate = false;
2994 
2995   this->RunTest(certs, crls, info);
2996 }
2997 
2998 // 4.13.10 Invalid DN nameConstraints Test10
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest10)2999 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3000                      Section13InvalidDNnameConstraintsTest10) {
3001   const char* const certs[] = {"TrustAnchorRootCertificate",
3002                                "nameConstraintsDN5CACert",
3003                                "InvalidDNnameConstraintsTest10EE"};
3004   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN5CACRL"};
3005   PkitsTestInfo info;
3006   info.test_number = "4.13.10";
3007   info.should_validate = false;
3008 
3009   this->RunTest(certs, crls, info);
3010 }
3011 
3012 // 4.13.11 Valid DN nameConstraints Test11
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest11)3013 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3014                      Section13ValidDNnameConstraintsTest11) {
3015   const char* const certs[] = {"TrustAnchorRootCertificate",
3016                                "nameConstraintsDN5CACert",
3017                                "ValidDNnameConstraintsTest11EE"};
3018   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN5CACRL"};
3019   PkitsTestInfo info;
3020   info.test_number = "4.13.11";
3021   info.should_validate = true;
3022 
3023   this->RunTest(certs, crls, info);
3024 }
3025 
3026 // 4.13.12 Invalid DN nameConstraints Test12
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest12)3027 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3028                      Section13InvalidDNnameConstraintsTest12) {
3029   const char* const certs[] = {
3030       "TrustAnchorRootCertificate", "nameConstraintsDN1CACert",
3031       "nameConstraintsDN1subCA1Cert", "InvalidDNnameConstraintsTest12EE"};
3032   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL",
3033                               "nameConstraintsDN1subCA1CRL"};
3034   PkitsTestInfo info;
3035   info.test_number = "4.13.12";
3036   info.should_validate = false;
3037 
3038   this->RunTest(certs, crls, info);
3039 }
3040 
3041 // 4.13.13 Invalid DN nameConstraints Test13
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest13)3042 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3043                      Section13InvalidDNnameConstraintsTest13) {
3044   const char* const certs[] = {
3045       "TrustAnchorRootCertificate", "nameConstraintsDN1CACert",
3046       "nameConstraintsDN1subCA2Cert", "InvalidDNnameConstraintsTest13EE"};
3047   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL",
3048                               "nameConstraintsDN1subCA2CRL"};
3049   PkitsTestInfo info;
3050   info.test_number = "4.13.13";
3051   info.should_validate = false;
3052 
3053   this->RunTest(certs, crls, info);
3054 }
3055 
3056 // 4.13.14 Valid DN nameConstraints Test14
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest14)3057 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3058                      Section13ValidDNnameConstraintsTest14) {
3059   const char* const certs[] = {
3060       "TrustAnchorRootCertificate", "nameConstraintsDN1CACert",
3061       "nameConstraintsDN1subCA2Cert", "ValidDNnameConstraintsTest14EE"};
3062   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL",
3063                               "nameConstraintsDN1subCA2CRL"};
3064   PkitsTestInfo info;
3065   info.test_number = "4.13.14";
3066   info.should_validate = true;
3067 
3068   this->RunTest(certs, crls, info);
3069 }
3070 
3071 // 4.13.15 Invalid DN nameConstraints Test15
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest15)3072 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3073                      Section13InvalidDNnameConstraintsTest15) {
3074   const char* const certs[] = {
3075       "TrustAnchorRootCertificate", "nameConstraintsDN3CACert",
3076       "nameConstraintsDN3subCA1Cert", "InvalidDNnameConstraintsTest15EE"};
3077   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN3CACRL",
3078                               "nameConstraintsDN3subCA1CRL"};
3079   PkitsTestInfo info;
3080   info.test_number = "4.13.15";
3081   info.should_validate = false;
3082 
3083   this->RunTest(certs, crls, info);
3084 }
3085 
3086 // 4.13.16 Invalid DN nameConstraints Test16
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest16)3087 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3088                      Section13InvalidDNnameConstraintsTest16) {
3089   const char* const certs[] = {
3090       "TrustAnchorRootCertificate", "nameConstraintsDN3CACert",
3091       "nameConstraintsDN3subCA1Cert", "InvalidDNnameConstraintsTest16EE"};
3092   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN3CACRL",
3093                               "nameConstraintsDN3subCA1CRL"};
3094   PkitsTestInfo info;
3095   info.test_number = "4.13.16";
3096   info.should_validate = false;
3097 
3098   this->RunTest(certs, crls, info);
3099 }
3100 
3101 // 4.13.17 Invalid DN nameConstraints Test17
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNnameConstraintsTest17)3102 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3103                      Section13InvalidDNnameConstraintsTest17) {
3104   const char* const certs[] = {
3105       "TrustAnchorRootCertificate", "nameConstraintsDN3CACert",
3106       "nameConstraintsDN3subCA2Cert", "InvalidDNnameConstraintsTest17EE"};
3107   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN3CACRL",
3108                               "nameConstraintsDN3subCA2CRL"};
3109   PkitsTestInfo info;
3110   info.test_number = "4.13.17";
3111   info.should_validate = false;
3112 
3113   this->RunTest(certs, crls, info);
3114 }
3115 
3116 // 4.13.18 Valid DN nameConstraints Test18
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNnameConstraintsTest18)3117 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3118                      Section13ValidDNnameConstraintsTest18) {
3119   const char* const certs[] = {
3120       "TrustAnchorRootCertificate", "nameConstraintsDN3CACert",
3121       "nameConstraintsDN3subCA2Cert", "ValidDNnameConstraintsTest18EE"};
3122   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN3CACRL",
3123                               "nameConstraintsDN3subCA2CRL"};
3124   PkitsTestInfo info;
3125   info.test_number = "4.13.18";
3126   info.should_validate = true;
3127 
3128   this->RunTest(certs, crls, info);
3129 }
3130 
3131 // 4.13.19 Valid Self-Issued DN nameConstraints Test19
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidSelfIssuedDNnameConstraintsTest19)3132 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3133                      Section13ValidSelfIssuedDNnameConstraintsTest19) {
3134   const char* const certs[] = {
3135       "TrustAnchorRootCertificate", "nameConstraintsDN1CACert",
3136       "nameConstraintsDN1SelfIssuedCACert", "ValidDNnameConstraintsTest19EE"};
3137   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL"};
3138   PkitsTestInfo info;
3139   info.test_number = "4.13.19";
3140   info.should_validate = true;
3141 
3142   this->RunTest(certs, crls, info);
3143 }
3144 
3145 // 4.13.20 Invalid Self-Issued DN nameConstraints Test20
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidSelfIssuedDNnameConstraintsTest20)3146 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3147                      Section13InvalidSelfIssuedDNnameConstraintsTest20) {
3148   const char* const certs[] = {"TrustAnchorRootCertificate",
3149                                "nameConstraintsDN1CACert",
3150                                "InvalidDNnameConstraintsTest20EE"};
3151   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL"};
3152   PkitsTestInfo info;
3153   info.test_number = "4.13.20";
3154   info.should_validate = false;
3155 
3156   this->RunTest(certs, crls, info);
3157 }
3158 
3159 // 4.13.21 Valid RFC822 nameConstraints Test21
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidRFC822nameConstraintsTest21)3160 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3161                      Section13ValidRFC822nameConstraintsTest21) {
3162   const char* const certs[] = {"TrustAnchorRootCertificate",
3163                                "nameConstraintsRFC822CA1Cert",
3164                                "ValidRFC822nameConstraintsTest21EE"};
3165   const char* const crls[] = {"TrustAnchorRootCRL",
3166                               "nameConstraintsRFC822CA1CRL"};
3167   PkitsTestInfo info;
3168   info.test_number = "4.13.21";
3169   info.should_validate = true;
3170 
3171   this->RunTest(certs, crls, info);
3172 }
3173 
3174 // 4.13.22 Invalid RFC822 nameConstraints Test22
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidRFC822nameConstraintsTest22)3175 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3176                      Section13InvalidRFC822nameConstraintsTest22) {
3177   const char* const certs[] = {"TrustAnchorRootCertificate",
3178                                "nameConstraintsRFC822CA1Cert",
3179                                "InvalidRFC822nameConstraintsTest22EE"};
3180   const char* const crls[] = {"TrustAnchorRootCRL",
3181                               "nameConstraintsRFC822CA1CRL"};
3182   PkitsTestInfo info;
3183   info.test_number = "4.13.22";
3184   info.should_validate = false;
3185 
3186   this->RunTest(certs, crls, info);
3187 }
3188 
3189 // 4.13.23 Valid RFC822 nameConstraints Test23
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidRFC822nameConstraintsTest23)3190 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3191                      Section13ValidRFC822nameConstraintsTest23) {
3192   const char* const certs[] = {"TrustAnchorRootCertificate",
3193                                "nameConstraintsRFC822CA2Cert",
3194                                "ValidRFC822nameConstraintsTest23EE"};
3195   const char* const crls[] = {"TrustAnchorRootCRL",
3196                               "nameConstraintsRFC822CA2CRL"};
3197   PkitsTestInfo info;
3198   info.test_number = "4.13.23";
3199   info.should_validate = true;
3200 
3201   this->RunTest(certs, crls, info);
3202 }
3203 
3204 // 4.13.24 Invalid RFC822 nameConstraints Test24
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidRFC822nameConstraintsTest24)3205 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3206                      Section13InvalidRFC822nameConstraintsTest24) {
3207   const char* const certs[] = {"TrustAnchorRootCertificate",
3208                                "nameConstraintsRFC822CA2Cert",
3209                                "InvalidRFC822nameConstraintsTest24EE"};
3210   const char* const crls[] = {"TrustAnchorRootCRL",
3211                               "nameConstraintsRFC822CA2CRL"};
3212   PkitsTestInfo info;
3213   info.test_number = "4.13.24";
3214   info.should_validate = false;
3215 
3216   this->RunTest(certs, crls, info);
3217 }
3218 
3219 // 4.13.25 Valid RFC822 nameConstraints Test25
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidRFC822nameConstraintsTest25)3220 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3221                      Section13ValidRFC822nameConstraintsTest25) {
3222   const char* const certs[] = {"TrustAnchorRootCertificate",
3223                                "nameConstraintsRFC822CA3Cert",
3224                                "ValidRFC822nameConstraintsTest25EE"};
3225   const char* const crls[] = {"TrustAnchorRootCRL",
3226                               "nameConstraintsRFC822CA3CRL"};
3227   PkitsTestInfo info;
3228   info.test_number = "4.13.25";
3229   info.should_validate = true;
3230 
3231   this->RunTest(certs, crls, info);
3232 }
3233 
3234 // 4.13.26 Invalid RFC822 nameConstraints Test26
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidRFC822nameConstraintsTest26)3235 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3236                      Section13InvalidRFC822nameConstraintsTest26) {
3237   const char* const certs[] = {"TrustAnchorRootCertificate",
3238                                "nameConstraintsRFC822CA3Cert",
3239                                "InvalidRFC822nameConstraintsTest26EE"};
3240   const char* const crls[] = {"TrustAnchorRootCRL",
3241                               "nameConstraintsRFC822CA3CRL"};
3242   PkitsTestInfo info;
3243   info.test_number = "4.13.26";
3244   info.should_validate = false;
3245 
3246   this->RunTest(certs, crls, info);
3247 }
3248 
3249 // 4.13.27 Valid DN and RFC822 nameConstraints Test27
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNandRFC822nameConstraintsTest27)3250 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3251                      Section13ValidDNandRFC822nameConstraintsTest27) {
3252   const char* const certs[] = {"TrustAnchorRootCertificate",
3253                                "nameConstraintsDN1CACert",
3254                                "nameConstraintsDN1subCA3Cert",
3255                                "ValidDNandRFC822nameConstraintsTest27EE"};
3256   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL",
3257                               "nameConstraintsDN1subCA3CRL"};
3258   PkitsTestInfo info;
3259   info.test_number = "4.13.27";
3260   info.should_validate = true;
3261 
3262   this->RunTest(certs, crls, info);
3263 }
3264 
3265 // 4.13.28 Invalid DN and RFC822 nameConstraints Test28
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNandRFC822nameConstraintsTest28)3266 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3267                      Section13InvalidDNandRFC822nameConstraintsTest28) {
3268   const char* const certs[] = {"TrustAnchorRootCertificate",
3269                                "nameConstraintsDN1CACert",
3270                                "nameConstraintsDN1subCA3Cert",
3271                                "InvalidDNandRFC822nameConstraintsTest28EE"};
3272   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL",
3273                               "nameConstraintsDN1subCA3CRL"};
3274   PkitsTestInfo info;
3275   info.test_number = "4.13.28";
3276   info.should_validate = false;
3277 
3278   this->RunTest(certs, crls, info);
3279 }
3280 
3281 // 4.13.29 Invalid DN and RFC822 nameConstraints Test29
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNandRFC822nameConstraintsTest29)3282 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3283                      Section13InvalidDNandRFC822nameConstraintsTest29) {
3284   const char* const certs[] = {"TrustAnchorRootCertificate",
3285                                "nameConstraintsDN1CACert",
3286                                "nameConstraintsDN1subCA3Cert",
3287                                "InvalidDNandRFC822nameConstraintsTest29EE"};
3288   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDN1CACRL",
3289                               "nameConstraintsDN1subCA3CRL"};
3290   PkitsTestInfo info;
3291   info.test_number = "4.13.29";
3292   info.should_validate = false;
3293 
3294   this->RunTest(certs, crls, info);
3295 }
3296 
3297 // 4.13.30 Valid DNS nameConstraints Test30
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNSnameConstraintsTest30)3298 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3299                      Section13ValidDNSnameConstraintsTest30) {
3300   const char* const certs[] = {"TrustAnchorRootCertificate",
3301                                "nameConstraintsDNS1CACert",
3302                                "ValidDNSnameConstraintsTest30EE"};
3303   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDNS1CACRL"};
3304   PkitsTestInfo info;
3305   info.test_number = "4.13.30";
3306   info.should_validate = true;
3307 
3308   this->RunTest(certs, crls, info);
3309 }
3310 
3311 // 4.13.31 Invalid DNS nameConstraints Test31
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNSnameConstraintsTest31)3312 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3313                      Section13InvalidDNSnameConstraintsTest31) {
3314   const char* const certs[] = {"TrustAnchorRootCertificate",
3315                                "nameConstraintsDNS1CACert",
3316                                "InvalidDNSnameConstraintsTest31EE"};
3317   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDNS1CACRL"};
3318   PkitsTestInfo info;
3319   info.test_number = "4.13.31";
3320   info.should_validate = false;
3321 
3322   this->RunTest(certs, crls, info);
3323 }
3324 
3325 // 4.13.32 Valid DNS nameConstraints Test32
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidDNSnameConstraintsTest32)3326 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3327                      Section13ValidDNSnameConstraintsTest32) {
3328   const char* const certs[] = {"TrustAnchorRootCertificate",
3329                                "nameConstraintsDNS2CACert",
3330                                "ValidDNSnameConstraintsTest32EE"};
3331   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDNS2CACRL"};
3332   PkitsTestInfo info;
3333   info.test_number = "4.13.32";
3334   info.should_validate = true;
3335 
3336   this->RunTest(certs, crls, info);
3337 }
3338 
3339 // 4.13.33 Invalid DNS nameConstraints Test33
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNSnameConstraintsTest33)3340 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3341                      Section13InvalidDNSnameConstraintsTest33) {
3342   const char* const certs[] = {"TrustAnchorRootCertificate",
3343                                "nameConstraintsDNS2CACert",
3344                                "InvalidDNSnameConstraintsTest33EE"};
3345   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDNS2CACRL"};
3346   PkitsTestInfo info;
3347   info.test_number = "4.13.33";
3348   info.should_validate = false;
3349 
3350   this->RunTest(certs, crls, info);
3351 }
3352 
3353 // 4.13.34 Valid URI nameConstraints Test34
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidURInameConstraintsTest34)3354 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3355                      Section13ValidURInameConstraintsTest34) {
3356   const char* const certs[] = {"TrustAnchorRootCertificate",
3357                                "nameConstraintsURI1CACert",
3358                                "ValidURInameConstraintsTest34EE"};
3359   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsURI1CACRL"};
3360   PkitsTestInfo info;
3361   info.test_number = "4.13.34";
3362   info.should_validate = true;
3363 
3364   this->RunTest(certs, crls, info);
3365 }
3366 
3367 // 4.13.35 Invalid URI nameConstraints Test35
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidURInameConstraintsTest35)3368 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3369                      Section13InvalidURInameConstraintsTest35) {
3370   const char* const certs[] = {"TrustAnchorRootCertificate",
3371                                "nameConstraintsURI1CACert",
3372                                "InvalidURInameConstraintsTest35EE"};
3373   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsURI1CACRL"};
3374   PkitsTestInfo info;
3375   info.test_number = "4.13.35";
3376   info.should_validate = false;
3377 
3378   this->RunTest(certs, crls, info);
3379 }
3380 
3381 // 4.13.36 Valid URI nameConstraints Test36
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13ValidURInameConstraintsTest36)3382 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3383                      Section13ValidURInameConstraintsTest36) {
3384   const char* const certs[] = {"TrustAnchorRootCertificate",
3385                                "nameConstraintsURI2CACert",
3386                                "ValidURInameConstraintsTest36EE"};
3387   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsURI2CACRL"};
3388   PkitsTestInfo info;
3389   info.test_number = "4.13.36";
3390   info.should_validate = true;
3391 
3392   this->RunTest(certs, crls, info);
3393 }
3394 
3395 // 4.13.37 Invalid URI nameConstraints Test37
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidURInameConstraintsTest37)3396 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3397                      Section13InvalidURInameConstraintsTest37) {
3398   const char* const certs[] = {"TrustAnchorRootCertificate",
3399                                "nameConstraintsURI2CACert",
3400                                "InvalidURInameConstraintsTest37EE"};
3401   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsURI2CACRL"};
3402   PkitsTestInfo info;
3403   info.test_number = "4.13.37";
3404   info.should_validate = false;
3405 
3406   this->RunTest(certs, crls, info);
3407 }
3408 
3409 // 4.13.38 Invalid DNS nameConstraints Test38
WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,Section13InvalidDNSnameConstraintsTest38)3410 WRAPPED_TYPED_TEST_P(PkitsTest13NameConstraints,
3411                      Section13InvalidDNSnameConstraintsTest38) {
3412   const char* const certs[] = {"TrustAnchorRootCertificate",
3413                                "nameConstraintsDNS1CACert",
3414                                "InvalidDNSnameConstraintsTest38EE"};
3415   const char* const crls[] = {"TrustAnchorRootCRL", "nameConstraintsDNS1CACRL"};
3416   PkitsTestInfo info;
3417   info.test_number = "4.13.38";
3418   info.should_validate = false;
3419 
3420   this->RunTest(certs, crls, info);
3421 }
3422 
3423 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
3424     PkitsTest13NameConstraints,
3425     Section13ValidDNnameConstraintsTest1,
3426     Section13InvalidDNnameConstraintsTest2,
3427     Section13InvalidDNnameConstraintsTest3,
3428     Section13ValidDNnameConstraintsTest4,
3429     Section13ValidDNnameConstraintsTest5,
3430     Section13ValidDNnameConstraintsTest6,
3431     Section13InvalidDNnameConstraintsTest7,
3432     Section13InvalidDNnameConstraintsTest8,
3433     Section13InvalidDNnameConstraintsTest9,
3434     Section13InvalidDNnameConstraintsTest10,
3435     Section13ValidDNnameConstraintsTest11,
3436     Section13InvalidDNnameConstraintsTest12,
3437     Section13InvalidDNnameConstraintsTest13,
3438     Section13ValidDNnameConstraintsTest14,
3439     Section13InvalidDNnameConstraintsTest15,
3440     Section13InvalidDNnameConstraintsTest16,
3441     Section13InvalidDNnameConstraintsTest17,
3442     Section13ValidDNnameConstraintsTest18,
3443     Section13ValidSelfIssuedDNnameConstraintsTest19,
3444     Section13InvalidSelfIssuedDNnameConstraintsTest20,
3445     Section13ValidRFC822nameConstraintsTest21,
3446     Section13InvalidRFC822nameConstraintsTest22,
3447     Section13ValidRFC822nameConstraintsTest23,
3448     Section13InvalidRFC822nameConstraintsTest24,
3449     Section13ValidRFC822nameConstraintsTest25,
3450     Section13InvalidRFC822nameConstraintsTest26,
3451     Section13ValidDNandRFC822nameConstraintsTest27,
3452     Section13InvalidDNandRFC822nameConstraintsTest28,
3453     Section13InvalidDNandRFC822nameConstraintsTest29,
3454     Section13ValidDNSnameConstraintsTest30,
3455     Section13InvalidDNSnameConstraintsTest31,
3456     Section13ValidDNSnameConstraintsTest32,
3457     Section13InvalidDNSnameConstraintsTest33,
3458     Section13ValidURInameConstraintsTest34,
3459     Section13InvalidURInameConstraintsTest35,
3460     Section13ValidURInameConstraintsTest36,
3461     Section13InvalidURInameConstraintsTest37,
3462     Section13InvalidDNSnameConstraintsTest38);
3463 
3464 template <typename PkitsTestDelegate>
3465 class PkitsTest14DistributionPoints : public PkitsTest<PkitsTestDelegate> {};
3466 TYPED_TEST_SUITE_P(PkitsTest14DistributionPoints);
3467 
3468 // 4.14.1 Valid distributionPoint Test1
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValiddistributionPointTest1)3469 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3470                      Section14ValiddistributionPointTest1) {
3471   const char* const certs[] = {"TrustAnchorRootCertificate",
3472                                "distributionPoint1CACert",
3473                                "ValiddistributionPointTest1EE"};
3474   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint1CACRL"};
3475   PkitsTestInfo info;
3476   info.test_number = "4.14.1";
3477   info.should_validate = true;
3478 
3479   this->RunTest(certs, crls, info);
3480 }
3481 
3482 // 4.14.2 Invalid distributionPoint Test2
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvaliddistributionPointTest2)3483 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3484                      Section14InvaliddistributionPointTest2) {
3485   const char* const certs[] = {"TrustAnchorRootCertificate",
3486                                "distributionPoint1CACert",
3487                                "InvaliddistributionPointTest2EE"};
3488   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint1CACRL"};
3489   PkitsTestInfo info;
3490   info.test_number = "4.14.2";
3491   info.should_validate = false;
3492 
3493   this->RunTest(certs, crls, info);
3494 }
3495 
3496 // 4.14.3 Invalid distributionPoint Test3
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvaliddistributionPointTest3)3497 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3498                      Section14InvaliddistributionPointTest3) {
3499   const char* const certs[] = {"TrustAnchorRootCertificate",
3500                                "distributionPoint1CACert",
3501                                "InvaliddistributionPointTest3EE"};
3502   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint1CACRL"};
3503   PkitsTestInfo info;
3504   info.test_number = "4.14.3";
3505   info.should_validate = false;
3506 
3507   this->RunTest(certs, crls, info);
3508 }
3509 
3510 // 4.14.4 Valid distributionPoint Test4
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValiddistributionPointTest4)3511 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3512                      Section14ValiddistributionPointTest4) {
3513   const char* const certs[] = {"TrustAnchorRootCertificate",
3514                                "distributionPoint1CACert",
3515                                "ValiddistributionPointTest4EE"};
3516   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint1CACRL"};
3517   PkitsTestInfo info;
3518   info.test_number = "4.14.4";
3519   info.should_validate = true;
3520 
3521   this->RunTest(certs, crls, info);
3522 }
3523 
3524 // 4.14.5 Valid distributionPoint Test5
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValiddistributionPointTest5)3525 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3526                      Section14ValiddistributionPointTest5) {
3527   const char* const certs[] = {"TrustAnchorRootCertificate",
3528                                "distributionPoint2CACert",
3529                                "ValiddistributionPointTest5EE"};
3530   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint2CACRL"};
3531   PkitsTestInfo info;
3532   info.test_number = "4.14.5";
3533   info.should_validate = true;
3534 
3535   this->RunTest(certs, crls, info);
3536 }
3537 
3538 // 4.14.6 Invalid distributionPoint Test6
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvaliddistributionPointTest6)3539 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3540                      Section14InvaliddistributionPointTest6) {
3541   const char* const certs[] = {"TrustAnchorRootCertificate",
3542                                "distributionPoint2CACert",
3543                                "InvaliddistributionPointTest6EE"};
3544   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint2CACRL"};
3545   PkitsTestInfo info;
3546   info.test_number = "4.14.6";
3547   info.should_validate = false;
3548 
3549   this->RunTest(certs, crls, info);
3550 }
3551 
3552 // 4.14.7 Valid distributionPoint Test7
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValiddistributionPointTest7)3553 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3554                      Section14ValiddistributionPointTest7) {
3555   const char* const certs[] = {"TrustAnchorRootCertificate",
3556                                "distributionPoint2CACert",
3557                                "ValiddistributionPointTest7EE"};
3558   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint2CACRL"};
3559   PkitsTestInfo info;
3560   info.test_number = "4.14.7";
3561   info.should_validate = true;
3562 
3563   this->RunTest(certs, crls, info);
3564 }
3565 
3566 // 4.14.8 Invalid distributionPoint Test8
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvaliddistributionPointTest8)3567 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3568                      Section14InvaliddistributionPointTest8) {
3569   const char* const certs[] = {"TrustAnchorRootCertificate",
3570                                "distributionPoint2CACert",
3571                                "InvaliddistributionPointTest8EE"};
3572   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint2CACRL"};
3573   PkitsTestInfo info;
3574   info.test_number = "4.14.8";
3575   info.should_validate = false;
3576 
3577   this->RunTest(certs, crls, info);
3578 }
3579 
3580 // 4.14.9 Invalid distributionPoint Test9
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvaliddistributionPointTest9)3581 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3582                      Section14InvaliddistributionPointTest9) {
3583   const char* const certs[] = {"TrustAnchorRootCertificate",
3584                                "distributionPoint2CACert",
3585                                "InvaliddistributionPointTest9EE"};
3586   const char* const crls[] = {"TrustAnchorRootCRL", "distributionPoint2CACRL"};
3587   PkitsTestInfo info;
3588   info.test_number = "4.14.9";
3589   info.should_validate = false;
3590 
3591   this->RunTest(certs, crls, info);
3592 }
3593 
3594 // 4.14.10 Valid No issuingDistributionPoint Test10
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidNoissuingDistributionPointTest10)3595 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3596                      Section14ValidNoissuingDistributionPointTest10) {
3597   const char* const certs[] = {"TrustAnchorRootCertificate",
3598                                "NoissuingDistributionPointCACert",
3599                                "ValidNoissuingDistributionPointTest10EE"};
3600   const char* const crls[] = {"TrustAnchorRootCRL",
3601                               "NoissuingDistributionPointCACRL"};
3602   PkitsTestInfo info;
3603   info.test_number = "4.14.10";
3604   info.should_validate = true;
3605 
3606   this->RunTest(certs, crls, info);
3607 }
3608 
3609 // 4.14.11 Invalid onlyContainsUserCerts CRL Test11
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlyContainsUserCertsCRLTest11)3610 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3611                      Section14InvalidonlyContainsUserCertsCRLTest11) {
3612   const char* const certs[] = {"TrustAnchorRootCertificate",
3613                                "onlyContainsUserCertsCACert",
3614                                "InvalidonlyContainsUserCertsTest11EE"};
3615   const char* const crls[] = {"TrustAnchorRootCRL",
3616                               "onlyContainsUserCertsCACRL"};
3617   PkitsTestInfo info;
3618   info.test_number = "4.14.11";
3619   info.should_validate = false;
3620 
3621   this->RunTest(certs, crls, info);
3622 }
3623 
3624 // 4.14.12 Invalid onlyContainsCACerts CRL Test12
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlyContainsCACertsCRLTest12)3625 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3626                      Section14InvalidonlyContainsCACertsCRLTest12) {
3627   const char* const certs[] = {"TrustAnchorRootCertificate",
3628                                "onlyContainsCACertsCACert",
3629                                "InvalidonlyContainsCACertsTest12EE"};
3630   const char* const crls[] = {"TrustAnchorRootCRL", "onlyContainsCACertsCACRL"};
3631   PkitsTestInfo info;
3632   info.test_number = "4.14.12";
3633   info.should_validate = false;
3634 
3635   this->RunTest(certs, crls, info);
3636 }
3637 
3638 // 4.14.13 Valid onlyContainsCACerts CRL Test13
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidonlyContainsCACertsCRLTest13)3639 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3640                      Section14ValidonlyContainsCACertsCRLTest13) {
3641   const char* const certs[] = {"TrustAnchorRootCertificate",
3642                                "onlyContainsCACertsCACert",
3643                                "ValidonlyContainsCACertsTest13EE"};
3644   const char* const crls[] = {"TrustAnchorRootCRL", "onlyContainsCACertsCACRL"};
3645   PkitsTestInfo info;
3646   info.test_number = "4.14.13";
3647   info.should_validate = true;
3648 
3649   this->RunTest(certs, crls, info);
3650 }
3651 
3652 // 4.14.14 Invalid onlyContainsAttributeCerts Test14
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlyContainsAttributeCertsTest14)3653 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3654                      Section14InvalidonlyContainsAttributeCertsTest14) {
3655   const char* const certs[] = {"TrustAnchorRootCertificate",
3656                                "onlyContainsAttributeCertsCACert",
3657                                "InvalidonlyContainsAttributeCertsTest14EE"};
3658   const char* const crls[] = {"TrustAnchorRootCRL",
3659                               "onlyContainsAttributeCertsCACRL"};
3660   PkitsTestInfo info;
3661   info.test_number = "4.14.14";
3662   info.should_validate = false;
3663 
3664   this->RunTest(certs, crls, info);
3665 }
3666 
3667 // 4.14.15 Invalid onlySomeReasons Test15
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlySomeReasonsTest15)3668 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3669                      Section14InvalidonlySomeReasonsTest15) {
3670   const char* const certs[] = {"TrustAnchorRootCertificate",
3671                                "onlySomeReasonsCA1Cert",
3672                                "InvalidonlySomeReasonsTest15EE"};
3673   const char* const crls[] = {"TrustAnchorRootCRL",
3674                               "onlySomeReasonsCA1compromiseCRL",
3675                               "onlySomeReasonsCA1otherreasonsCRL"};
3676   PkitsTestInfo info;
3677   info.test_number = "4.14.15";
3678   info.should_validate = false;
3679 
3680   this->RunTest(certs, crls, info);
3681 }
3682 
3683 // 4.14.16 Invalid onlySomeReasons Test16
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlySomeReasonsTest16)3684 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3685                      Section14InvalidonlySomeReasonsTest16) {
3686   const char* const certs[] = {"TrustAnchorRootCertificate",
3687                                "onlySomeReasonsCA1Cert",
3688                                "InvalidonlySomeReasonsTest16EE"};
3689   const char* const crls[] = {"TrustAnchorRootCRL",
3690                               "onlySomeReasonsCA1compromiseCRL",
3691                               "onlySomeReasonsCA1otherreasonsCRL"};
3692   PkitsTestInfo info;
3693   info.test_number = "4.14.16";
3694   info.should_validate = false;
3695 
3696   this->RunTest(certs, crls, info);
3697 }
3698 
3699 // 4.14.17 Invalid onlySomeReasons Test17
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlySomeReasonsTest17)3700 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3701                      Section14InvalidonlySomeReasonsTest17) {
3702   const char* const certs[] = {"TrustAnchorRootCertificate",
3703                                "onlySomeReasonsCA2Cert",
3704                                "InvalidonlySomeReasonsTest17EE"};
3705   const char* const crls[] = {"TrustAnchorRootCRL", "onlySomeReasonsCA2CRL1",
3706                               "onlySomeReasonsCA2CRL2"};
3707   PkitsTestInfo info;
3708   info.test_number = "4.14.17";
3709   info.should_validate = false;
3710 
3711   this->RunTest(certs, crls, info);
3712 }
3713 
3714 // 4.14.18 Valid onlySomeReasons Test18
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidonlySomeReasonsTest18)3715 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3716                      Section14ValidonlySomeReasonsTest18) {
3717   const char* const certs[] = {"TrustAnchorRootCertificate",
3718                                "onlySomeReasonsCA3Cert",
3719                                "ValidonlySomeReasonsTest18EE"};
3720   const char* const crls[] = {"TrustAnchorRootCRL",
3721                               "onlySomeReasonsCA3compromiseCRL",
3722                               "onlySomeReasonsCA3otherreasonsCRL"};
3723   PkitsTestInfo info;
3724   info.test_number = "4.14.18";
3725   info.should_validate = true;
3726 
3727   this->RunTest(certs, crls, info);
3728 }
3729 
3730 // 4.14.19 Valid onlySomeReasons Test19
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidonlySomeReasonsTest19)3731 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3732                      Section14ValidonlySomeReasonsTest19) {
3733   const char* const certs[] = {"TrustAnchorRootCertificate",
3734                                "onlySomeReasonsCA4Cert",
3735                                "ValidonlySomeReasonsTest19EE"};
3736   const char* const crls[] = {"TrustAnchorRootCRL",
3737                               "onlySomeReasonsCA4compromiseCRL",
3738                               "onlySomeReasonsCA4otherreasonsCRL"};
3739   PkitsTestInfo info;
3740   info.test_number = "4.14.19";
3741   info.should_validate = true;
3742 
3743   this->RunTest(certs, crls, info);
3744 }
3745 
3746 // 4.14.20 Invalid onlySomeReasons Test20
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlySomeReasonsTest20)3747 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3748                      Section14InvalidonlySomeReasonsTest20) {
3749   const char* const certs[] = {"TrustAnchorRootCertificate",
3750                                "onlySomeReasonsCA4Cert",
3751                                "InvalidonlySomeReasonsTest20EE"};
3752   const char* const crls[] = {"TrustAnchorRootCRL",
3753                               "onlySomeReasonsCA4compromiseCRL",
3754                               "onlySomeReasonsCA4otherreasonsCRL"};
3755   PkitsTestInfo info;
3756   info.test_number = "4.14.20";
3757   info.should_validate = false;
3758 
3759   this->RunTest(certs, crls, info);
3760 }
3761 
3762 // 4.14.21 Invalid onlySomeReasons Test21
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidonlySomeReasonsTest21)3763 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3764                      Section14InvalidonlySomeReasonsTest21) {
3765   const char* const certs[] = {"TrustAnchorRootCertificate",
3766                                "onlySomeReasonsCA4Cert",
3767                                "InvalidonlySomeReasonsTest21EE"};
3768   const char* const crls[] = {"TrustAnchorRootCRL",
3769                               "onlySomeReasonsCA4compromiseCRL",
3770                               "onlySomeReasonsCA4otherreasonsCRL"};
3771   PkitsTestInfo info;
3772   info.test_number = "4.14.21";
3773   info.should_validate = false;
3774 
3775   this->RunTest(certs, crls, info);
3776 }
3777 
3778 // 4.14.22 Valid IDP with indirectCRL Test22
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidIDPwithindirectCRLTest22)3779 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3780                      Section14ValidIDPwithindirectCRLTest22) {
3781   const char* const certs[] = {"TrustAnchorRootCertificate",
3782                                "indirectCRLCA1Cert",
3783                                "ValidIDPwithindirectCRLTest22EE"};
3784   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA1CRL"};
3785   PkitsTestInfo info;
3786   info.test_number = "4.14.22";
3787   info.should_validate = true;
3788 
3789   this->RunTest(certs, crls, info);
3790 }
3791 
3792 // 4.14.23 Invalid IDP with indirectCRL Test23
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidIDPwithindirectCRLTest23)3793 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3794                      Section14InvalidIDPwithindirectCRLTest23) {
3795   const char* const certs[] = {"TrustAnchorRootCertificate",
3796                                "indirectCRLCA1Cert",
3797                                "InvalidIDPwithindirectCRLTest23EE"};
3798   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA1CRL"};
3799   PkitsTestInfo info;
3800   info.test_number = "4.14.23";
3801   info.should_validate = false;
3802 
3803   this->RunTest(certs, crls, info);
3804 }
3805 
3806 // 4.14.24 Valid IDP with indirectCRL Test24
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidIDPwithindirectCRLTest24)3807 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3808                      Section14ValidIDPwithindirectCRLTest24) {
3809   const char* const certs[] = {"TrustAnchorRootCertificate",
3810                                "indirectCRLCA2Cert", "indirectCRLCA1Cert",
3811                                "ValidIDPwithindirectCRLTest24EE"};
3812   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA1CRL"};
3813   PkitsTestInfo info;
3814   info.test_number = "4.14.24";
3815   info.should_validate = true;
3816 
3817   this->RunTest(certs, crls, info);
3818 }
3819 
3820 // 4.14.25 Valid IDP with indirectCRL Test25
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidIDPwithindirectCRLTest25)3821 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3822                      Section14ValidIDPwithindirectCRLTest25) {
3823   const char* const certs[] = {"TrustAnchorRootCertificate",
3824                                "indirectCRLCA2Cert", "indirectCRLCA1Cert",
3825                                "ValidIDPwithindirectCRLTest25EE"};
3826   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA1CRL"};
3827   PkitsTestInfo info;
3828   info.test_number = "4.14.25";
3829   info.should_validate = true;
3830 
3831   this->RunTest(certs, crls, info);
3832 }
3833 
3834 // 4.14.26 Invalid IDP with indirectCRL Test26
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidIDPwithindirectCRLTest26)3835 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3836                      Section14InvalidIDPwithindirectCRLTest26) {
3837   const char* const certs[] = {"TrustAnchorRootCertificate",
3838                                "indirectCRLCA2Cert", "indirectCRLCA1Cert",
3839                                "InvalidIDPwithindirectCRLTest26EE"};
3840   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA1CRL"};
3841   PkitsTestInfo info;
3842   info.test_number = "4.14.26";
3843   info.should_validate = false;
3844 
3845   this->RunTest(certs, crls, info);
3846 }
3847 
3848 // 4.14.27 Invalid cRLIssuer Test27
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidcRLIssuerTest27)3849 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3850                      Section14InvalidcRLIssuerTest27) {
3851   const char* const certs[] = {"TrustAnchorRootCertificate",
3852                                "indirectCRLCA2Cert", "GoodCACert",
3853                                "InvalidcRLIssuerTest27EE"};
3854   const char* const crls[] = {"TrustAnchorRootCRL", "GoodCACRL"};
3855   PkitsTestInfo info;
3856   info.test_number = "4.14.27";
3857   info.should_validate = false;
3858 
3859   this->RunTest(certs, crls, info);
3860 }
3861 
3862 // 4.14.28 Valid cRLIssuer Test28
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidcRLIssuerTest28)3863 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3864                      Section14ValidcRLIssuerTest28) {
3865   const char* const certs[] = {
3866       "TrustAnchorRootCertificate", "indirectCRLCA3Cert",
3867       "indirectCRLCA3cRLIssuerCert", "ValidcRLIssuerTest28EE"};
3868   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA3CRL",
3869                               "indirectCRLCA3cRLIssuerCRL"};
3870   PkitsTestInfo info;
3871   info.test_number = "4.14.28";
3872   info.should_validate = true;
3873 
3874   this->RunTest(certs, crls, info);
3875 }
3876 
3877 // 4.14.29 Valid cRLIssuer Test29
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidcRLIssuerTest29)3878 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3879                      Section14ValidcRLIssuerTest29) {
3880   const char* const certs[] = {
3881       "TrustAnchorRootCertificate", "indirectCRLCA3Cert",
3882       "indirectCRLCA3cRLIssuerCert", "ValidcRLIssuerTest29EE"};
3883   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA3CRL",
3884                               "indirectCRLCA3cRLIssuerCRL"};
3885   PkitsTestInfo info;
3886   info.test_number = "4.14.29";
3887   info.should_validate = true;
3888 
3889   this->RunTest(certs, crls, info);
3890 }
3891 
3892 // 4.14.30 Valid cRLIssuer Test30
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidcRLIssuerTest30)3893 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3894                      Section14ValidcRLIssuerTest30) {
3895   const char* const certs[] = {
3896       "TrustAnchorRootCertificate", "indirectCRLCA4Cert",
3897       "indirectCRLCA4cRLIssuerCert", "ValidcRLIssuerTest30EE"};
3898   const char* const crls[] = {"TrustAnchorRootCRL",
3899                               "indirectCRLCA4cRLIssuerCRL"};
3900   PkitsTestInfo info;
3901   info.test_number = "4.14.30";
3902   info.should_validate = true;
3903 
3904   this->RunTest(certs, crls, info);
3905 }
3906 
3907 // 4.14.31 Invalid cRLIssuer Test31
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidcRLIssuerTest31)3908 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3909                      Section14InvalidcRLIssuerTest31) {
3910   const char* const certs[] = {"TrustAnchorRootCertificate",
3911                                "indirectCRLCA5Cert", "indirectCRLCA6Cert",
3912                                "InvalidcRLIssuerTest31EE"};
3913   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA5CRL"};
3914   PkitsTestInfo info;
3915   info.test_number = "4.14.31";
3916   info.should_validate = false;
3917 
3918   this->RunTest(certs, crls, info);
3919 }
3920 
3921 // 4.14.32 Invalid cRLIssuer Test32
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidcRLIssuerTest32)3922 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3923                      Section14InvalidcRLIssuerTest32) {
3924   const char* const certs[] = {"TrustAnchorRootCertificate",
3925                                "indirectCRLCA5Cert", "indirectCRLCA6Cert",
3926                                "InvalidcRLIssuerTest32EE"};
3927   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA5CRL"};
3928   PkitsTestInfo info;
3929   info.test_number = "4.14.32";
3930   info.should_validate = false;
3931 
3932   this->RunTest(certs, crls, info);
3933 }
3934 
3935 // 4.14.33 Valid cRLIssuer Test33
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14ValidcRLIssuerTest33)3936 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3937                      Section14ValidcRLIssuerTest33) {
3938   const char* const certs[] = {"TrustAnchorRootCertificate",
3939                                "indirectCRLCA5Cert", "indirectCRLCA6Cert",
3940                                "ValidcRLIssuerTest33EE"};
3941   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA5CRL"};
3942   PkitsTestInfo info;
3943   info.test_number = "4.14.33";
3944   info.should_validate = true;
3945 
3946   this->RunTest(certs, crls, info);
3947 }
3948 
3949 // 4.14.34 Invalid cRLIssuer Test34
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidcRLIssuerTest34)3950 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3951                      Section14InvalidcRLIssuerTest34) {
3952   const char* const certs[] = {"TrustAnchorRootCertificate",
3953                                "indirectCRLCA5Cert",
3954                                "InvalidcRLIssuerTest34EE"};
3955   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA5CRL"};
3956   PkitsTestInfo info;
3957   info.test_number = "4.14.34";
3958   info.should_validate = false;
3959 
3960   this->RunTest(certs, crls, info);
3961 }
3962 
3963 // 4.14.35 Invalid cRLIssuer Test35
WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,Section14InvalidcRLIssuerTest35)3964 WRAPPED_TYPED_TEST_P(PkitsTest14DistributionPoints,
3965                      Section14InvalidcRLIssuerTest35) {
3966   const char* const certs[] = {"TrustAnchorRootCertificate",
3967                                "indirectCRLCA5Cert",
3968                                "InvalidcRLIssuerTest35EE"};
3969   const char* const crls[] = {"TrustAnchorRootCRL", "indirectCRLCA5CRL"};
3970   PkitsTestInfo info;
3971   info.test_number = "4.14.35";
3972   info.should_validate = false;
3973 
3974   this->RunTest(certs, crls, info);
3975 }
3976 
3977 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
3978     PkitsTest14DistributionPoints,
3979     Section14ValiddistributionPointTest1,
3980     Section14InvaliddistributionPointTest2,
3981     Section14InvaliddistributionPointTest3,
3982     Section14ValiddistributionPointTest4,
3983     Section14ValiddistributionPointTest5,
3984     Section14InvaliddistributionPointTest6,
3985     Section14ValiddistributionPointTest7,
3986     Section14InvaliddistributionPointTest8,
3987     Section14InvaliddistributionPointTest9,
3988     Section14ValidNoissuingDistributionPointTest10,
3989     Section14InvalidonlyContainsUserCertsCRLTest11,
3990     Section14InvalidonlyContainsCACertsCRLTest12,
3991     Section14ValidonlyContainsCACertsCRLTest13,
3992     Section14InvalidonlyContainsAttributeCertsTest14,
3993     Section14InvalidonlySomeReasonsTest15,
3994     Section14InvalidonlySomeReasonsTest16,
3995     Section14InvalidonlySomeReasonsTest17,
3996     Section14ValidonlySomeReasonsTest18,
3997     Section14ValidonlySomeReasonsTest19,
3998     Section14InvalidonlySomeReasonsTest20,
3999     Section14InvalidonlySomeReasonsTest21,
4000     Section14ValidIDPwithindirectCRLTest22,
4001     Section14InvalidIDPwithindirectCRLTest23,
4002     Section14ValidIDPwithindirectCRLTest24,
4003     Section14ValidIDPwithindirectCRLTest25,
4004     Section14InvalidIDPwithindirectCRLTest26,
4005     Section14InvalidcRLIssuerTest27,
4006     Section14ValidcRLIssuerTest28,
4007     Section14ValidcRLIssuerTest29,
4008     Section14ValidcRLIssuerTest30,
4009     Section14InvalidcRLIssuerTest31,
4010     Section14InvalidcRLIssuerTest32,
4011     Section14ValidcRLIssuerTest33,
4012     Section14InvalidcRLIssuerTest34,
4013     Section14InvalidcRLIssuerTest35);
4014 
4015 template <typename PkitsTestDelegate>
4016 class PkitsTest15DeltaCRLs : public PkitsTest<PkitsTestDelegate> {};
4017 TYPED_TEST_SUITE_P(PkitsTest15DeltaCRLs);
4018 
4019 // 4.15.1 Invalid deltaCRLIndicator No Base Test1
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15InvaliddeltaCRLIndicatorNoBaseTest1)4020 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,
4021                      Section15InvaliddeltaCRLIndicatorNoBaseTest1) {
4022   const char* const certs[] = {"TrustAnchorRootCertificate",
4023                                "deltaCRLIndicatorNoBaseCACert",
4024                                "InvaliddeltaCRLIndicatorNoBaseTest1EE"};
4025   const char* const crls[] = {"TrustAnchorRootCRL",
4026                               "deltaCRLIndicatorNoBaseCACRL"};
4027   PkitsTestInfo info;
4028   info.test_number = "4.15.1";
4029   info.should_validate = false;
4030 
4031   this->RunTest(certs, crls, info);
4032 }
4033 
4034 // 4.15.2 Valid delta-CRL Test2
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15ValiddeltaCRLTest2)4035 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15ValiddeltaCRLTest2) {
4036   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA1Cert",
4037                                "ValiddeltaCRLTest2EE"};
4038   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA1CRL",
4039                               "deltaCRLCA1deltaCRL"};
4040   PkitsTestInfo info;
4041   info.test_number = "4.15.2";
4042   info.should_validate = true;
4043 
4044   this->RunTest(certs, crls, info);
4045 }
4046 
4047 // 4.15.3 Invalid delta-CRL Test3
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15InvaliddeltaCRLTest3)4048 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15InvaliddeltaCRLTest3) {
4049   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA1Cert",
4050                                "InvaliddeltaCRLTest3EE"};
4051   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA1CRL",
4052                               "deltaCRLCA1deltaCRL"};
4053   PkitsTestInfo info;
4054   info.test_number = "4.15.3";
4055   info.should_validate = false;
4056 
4057   this->RunTest(certs, crls, info);
4058 }
4059 
4060 // 4.15.4 Invalid delta-CRL Test4
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15InvaliddeltaCRLTest4)4061 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15InvaliddeltaCRLTest4) {
4062   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA1Cert",
4063                                "InvaliddeltaCRLTest4EE"};
4064   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA1CRL",
4065                               "deltaCRLCA1deltaCRL"};
4066   PkitsTestInfo info;
4067   info.test_number = "4.15.4";
4068   info.should_validate = false;
4069 
4070   this->RunTest(certs, crls, info);
4071 }
4072 
4073 // 4.15.5 Valid delta-CRL Test5
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15ValiddeltaCRLTest5)4074 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15ValiddeltaCRLTest5) {
4075   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA1Cert",
4076                                "ValiddeltaCRLTest5EE"};
4077   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA1CRL",
4078                               "deltaCRLCA1deltaCRL"};
4079   PkitsTestInfo info;
4080   info.test_number = "4.15.5";
4081   info.should_validate = true;
4082 
4083   this->RunTest(certs, crls, info);
4084 }
4085 
4086 // 4.15.6 Invalid delta-CRL Test6
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15InvaliddeltaCRLTest6)4087 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15InvaliddeltaCRLTest6) {
4088   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA1Cert",
4089                                "InvaliddeltaCRLTest6EE"};
4090   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA1CRL",
4091                               "deltaCRLCA1deltaCRL"};
4092   PkitsTestInfo info;
4093   info.test_number = "4.15.6";
4094   info.should_validate = false;
4095 
4096   this->RunTest(certs, crls, info);
4097 }
4098 
4099 // 4.15.7 Valid delta-CRL Test7
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15ValiddeltaCRLTest7)4100 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15ValiddeltaCRLTest7) {
4101   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA1Cert",
4102                                "ValiddeltaCRLTest7EE"};
4103   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA1CRL",
4104                               "deltaCRLCA1deltaCRL"};
4105   PkitsTestInfo info;
4106   info.test_number = "4.15.7";
4107   info.should_validate = true;
4108 
4109   this->RunTest(certs, crls, info);
4110 }
4111 
4112 // 4.15.8 Valid delta-CRL Test8
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15ValiddeltaCRLTest8)4113 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15ValiddeltaCRLTest8) {
4114   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA2Cert",
4115                                "ValiddeltaCRLTest8EE"};
4116   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA2CRL",
4117                               "deltaCRLCA2deltaCRL"};
4118   PkitsTestInfo info;
4119   info.test_number = "4.15.8";
4120   info.should_validate = true;
4121 
4122   this->RunTest(certs, crls, info);
4123 }
4124 
4125 // 4.15.9 Invalid delta-CRL Test9
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15InvaliddeltaCRLTest9)4126 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15InvaliddeltaCRLTest9) {
4127   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA2Cert",
4128                                "InvaliddeltaCRLTest9EE"};
4129   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA2CRL",
4130                               "deltaCRLCA2deltaCRL"};
4131   PkitsTestInfo info;
4132   info.test_number = "4.15.9";
4133   info.should_validate = false;
4134 
4135   this->RunTest(certs, crls, info);
4136 }
4137 
4138 // 4.15.10 Invalid delta-CRL Test10
WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs,Section15InvaliddeltaCRLTest10)4139 WRAPPED_TYPED_TEST_P(PkitsTest15DeltaCRLs, Section15InvaliddeltaCRLTest10) {
4140   const char* const certs[] = {"TrustAnchorRootCertificate", "deltaCRLCA3Cert",
4141                                "InvaliddeltaCRLTest10EE"};
4142   const char* const crls[] = {"TrustAnchorRootCRL", "deltaCRLCA3CRL",
4143                               "deltaCRLCA3deltaCRL"};
4144   PkitsTestInfo info;
4145   info.test_number = "4.15.10";
4146   info.should_validate = false;
4147 
4148   this->RunTest(certs, crls, info);
4149 }
4150 
4151 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
4152     PkitsTest15DeltaCRLs,
4153     Section15InvaliddeltaCRLIndicatorNoBaseTest1,
4154     Section15ValiddeltaCRLTest2,
4155     Section15InvaliddeltaCRLTest3,
4156     Section15InvaliddeltaCRLTest4,
4157     Section15ValiddeltaCRLTest5,
4158     Section15InvaliddeltaCRLTest6,
4159     Section15ValiddeltaCRLTest7,
4160     Section15ValiddeltaCRLTest8,
4161     Section15InvaliddeltaCRLTest9,
4162     Section15InvaliddeltaCRLTest10);
4163 
4164 template <typename PkitsTestDelegate>
4165 class PkitsTest16PrivateCertificateExtensions
4166     : public PkitsTest<PkitsTestDelegate> {};
4167 TYPED_TEST_SUITE_P(PkitsTest16PrivateCertificateExtensions);
4168 
4169 // 4.16.1 Valid Unknown Not Critical Certificate Extension Test1
WRAPPED_TYPED_TEST_P(PkitsTest16PrivateCertificateExtensions,Section16ValidUnknownNotCriticalCertificateExtensionTest1)4170 WRAPPED_TYPED_TEST_P(
4171     PkitsTest16PrivateCertificateExtensions,
4172     Section16ValidUnknownNotCriticalCertificateExtensionTest1) {
4173   const char* const certs[] = {
4174       "TrustAnchorRootCertificate",
4175       "ValidUnknownNotCriticalCertificateExtensionTest1EE"};
4176   const char* const crls[] = {"TrustAnchorRootCRL"};
4177   PkitsTestInfo info;
4178   info.test_number = "4.16.1";
4179   info.should_validate = true;
4180 
4181   this->RunTest(certs, crls, info);
4182 }
4183 
4184 // 4.16.2 Invalid Unknown Critical Certificate Extension Test2
WRAPPED_TYPED_TEST_P(PkitsTest16PrivateCertificateExtensions,Section16InvalidUnknownCriticalCertificateExtensionTest2)4185 WRAPPED_TYPED_TEST_P(PkitsTest16PrivateCertificateExtensions,
4186                      Section16InvalidUnknownCriticalCertificateExtensionTest2) {
4187   const char* const certs[] = {
4188       "TrustAnchorRootCertificate",
4189       "InvalidUnknownCriticalCertificateExtensionTest2EE"};
4190   const char* const crls[] = {"TrustAnchorRootCRL"};
4191   PkitsTestInfo info;
4192   info.test_number = "4.16.2";
4193   info.should_validate = false;
4194 
4195   this->RunTest(certs, crls, info);
4196 }
4197 
4198 WRAPPED_REGISTER_TYPED_TEST_SUITE_P(
4199     PkitsTest16PrivateCertificateExtensions,
4200     Section16ValidUnknownNotCriticalCertificateExtensionTest1,
4201     Section16InvalidUnknownCriticalCertificateExtensionTest2);
4202