{ CERT_TRUST_IS_UNTRUSTED_ROOT, 0 },
1, simpleStatus19 },
0 },
+ /* Older versions of crypt32 do not set
+ * CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, though they should. So
+ * ignore it (on Windows) but require it (on Wine.)
+ */
{ { sizeof(chain20) / sizeof(chain20[0]), chain20 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },
0 },
{ { sizeof(chain22) / sizeof(chain22[0]), chain22 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },
0 },
{ { sizeof(chain23) / sizeof(chain23[0]), chain23 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },
0 },
{ { sizeof(chain24) / sizeof(chain24[0]), chain24 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },
0 },
{ { sizeof(chain25) / sizeof(chain25[0]), chain25 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },
0 },
{ { sizeof(chain26) / sizeof(chain26[0]), chain26 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },
0 },
{ { sizeof(chain28) / sizeof(chain28[0]), chain28 },
{ { CERT_TRUST_IS_NOT_TIME_NESTED | CERT_TRUST_IS_NOT_VALID_FOR_USAGE |
- CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT,
+ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT |
+ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT,
CERT_TRUST_HAS_PREFERRED_ISSUER },
{ CERT_TRUST_IS_UNTRUSTED_ROOT |
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT, 0 },