- Timestamp:
- Oct 21, 2021 9:51:52 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/win/SUPHardenedVerifyImage-win.cpp
r90150 r91984 1275 1275 It's possible we're being too strict, but well, it's the only case so far, so no 1276 1276 need to relax the Key Usage restrictions just for a certificate w/o a trusted root. 1277 */ 1277 1278 VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION: Intel 27.20.100.9126 igdumdim64.dll 1279 has three signatures, the first is signed with a certificate (C=US,ST=CA, 1280 L=Santa Clara,O=Intel Corporation,CN=IntelGraphicsPE2021) that has a critical 1281 subject key identifier. This used to trip up the path validator. However, the 1282 other two signatures are from microsoft and checks out fine. So, in future 1283 situations like this it would be nice to simply continue with the next signature. 1284 See bugref{10130} for details. 1285 1286 VERR_SUP_VP_NOT_VALID_KERNEL_CODE_SIGNATURE: Is related to the above intel problem, 1287 but this is what we get if suppressing the unknown critical subjectKeyIdentifier 1288 in IPRT. We don't need all signatures to be valid kernel signatures, we should be 1289 happy with just one and ignore any additional signatures as long as they don't look 1290 like they've been compromised. Thus continue with this status too. */ 1278 1291 pNtViRdr->rcLastSignatureFailure = rc; 1279 1292 if ( rc == VERR_CR_X509_CPV_NOT_VALID_AT_TIME 1280 1293 || rc == VERR_CR_X509_CPV_NO_TRUSTED_PATHS 1281 || rc == VERR_CR_PKCS7_KEY_USAGE_MISMATCH) 1294 || rc == VERR_CR_PKCS7_KEY_USAGE_MISMATCH 1295 || rc == VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION 1296 || rc == VERR_SUP_VP_NOT_VALID_KERNEL_CODE_SIGNATURE) 1282 1297 { 1283 1298 SUP_DPRINTF(("%s: Signature #%u/%u: %s (%d) w/ timestamp=%#RX64/%s.\n", pNtViRdr->szFilename, pInfo->iSignature + 1, pInfo->cSignatures, 1284 rc == VERR_CR_X509_CPV_NOT_VALID_AT_TIME ? "VERR_CR_X509_CPV_NOT_VALID_AT_TIME" : "VERR_CR_X509_CPV_NO_TRUSTED_PATHS", rc, 1285 RTTimeSpecGetSeconds(&aTimes[i].TimeSpec), aTimes[i].pszDesc)); 1299 rc == VERR_CR_X509_CPV_NOT_VALID_AT_TIME ? "VERR_CR_X509_CPV_NOT_VALID_AT_TIME" 1300 : rc == VERR_CR_X509_CPV_NO_TRUSTED_PATHS ? "VERR_CR_X509_CPV_NO_TRUSTED_PATHS" 1301 : rc == VERR_CR_PKCS7_KEY_USAGE_MISMATCH ? "VERR_CR_PKCS7_KEY_USAGE_MISMATCH" 1302 : rc == VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION ? "VERR_CR_X509_CPV_UNKNOWN_CRITICAL_EXTENSION" 1303 : "VERR_SUP_VP_NOT_VALID_KERNEL_CODE_SIGNATURE", 1304 rc, RTTimeSpecGetSeconds(&aTimes[i].TimeSpec), aTimes[i].pszDesc)); 1286 1305 1287 1306 /* This leniency is not applicable to build certificate requirements (signature #1 only). */
Note:
See TracChangeset
for help on using the changeset viewer.