VirtualBox

Ignore:
Timestamp:
Oct 12, 2020 11:59:53 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140868
Message:

SUPHardNt,IPRT: If there are nested signatures (i.e. more than one signature), don't get grumpy if there are time or cert path issues with some of them, as long as one or more checks out perfectly. (Mind, all the signature data must check out, it's just the cert path or signing time we're relaxing here.) ticketref:19743 bugref:3103

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp

    r85172 r86549  
    13531353 * @callback_method_impl{FNRTLDRVALIDATESIGNEDDATA}
    13541354 */
    1355 static DECLCALLBACK(int) supdrvDarwinLdrOpenVerifyCallback(RTLDRMOD hLdrMod, RTLDRSIGNATURETYPE enmSignature,
    1356                                                            void const *pvSignature, size_t cbSignature,
    1357                                                            void const *pvExternalData, size_t cbExternalData,
     1355static DECLCALLBACK(int) supdrvDarwinLdrOpenVerifyCallback(RTLDRMOD hLdrMod, PCRTLDRSIGNATUREINFO pInfo,
    13581356                                                           PRTERRINFO pErrInfo, void *pvUser)
    13591357{
    13601358    PSUPDRVDEVEXT pDevExt = (PSUPDRVDEVEXT)pvUser;
    1361     RT_NOREF_PV(hLdrMod); RT_NOREF_PV(cbSignature);
    1362 
    1363     switch (enmSignature)
     1359    RT_NOREF_PV(hLdrMod);
     1360
     1361    switch (pInfo->enmType)
    13641362    {
    13651363        case RTLDRSIGNATURETYPE_PKCS7_SIGNED_DATA:
    1366             if (pvExternalData)
     1364            if (pInfo->pvExternalData)
    13671365            {
    1368                 PCRTCRPKCS7CONTENTINFO pContentInfo = (PCRTCRPKCS7CONTENTINFO)pvSignature;
     1366                PCRTCRPKCS7CONTENTINFO pContentInfo = (PCRTCRPKCS7CONTENTINFO)pInfo->pvSignature;
    13691367                RTTIMESPEC             ValidationTime;
    13701368                RTTimeNow(&ValidationTime);
     
    13761374                                                                 pDevExt->hAdditionalStore, pDevExt->hRootStore, &ValidationTime,
    13771375                                                                 supdrvDarwinLdrOpenVerifyCertificatCallback, pDevExt,
    1378                                                                  pvExternalData, cbExternalData, pErrInfo);
     1376                                                                 pInfo->pvExternalData, pInfo->cbExternalData, pErrInfo);
    13791377            }
    13801378            return RTErrInfoSetF(pErrInfo, VERR_NOT_SUPPORTED, "Expected external data with signature!");
    13811379
    13821380        default:
    1383             return RTErrInfoSetF(pErrInfo, VERR_NOT_SUPPORTED, "Unsupported signature type: %d", enmSignature);
     1381            return RTErrInfoSetF(pErrInfo, VERR_NOT_SUPPORTED, "Unsupported signature type: %d", pInfo->enmType);
    13841382    }
    13851383}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette