Paul Gofman : cryptnet: Check cached revocation status in verify_cert_revocation().
Module: wine Branch: master Commit: 67de946ca9bdc8f39adffca57a336165936e62e2 URL: https://gitlab.winehq.org/wine/wine/-/commit/67de946ca9bdc8f39adffca57a33616... Author: Paul Gofman <pgofman(a)codeweavers.com> Date: Wed Jan 11 14:00:48 2023 -0600 cryptnet: Check cached revocation status in verify_cert_revocation(). --- dlls/cryptnet/cryptnet_main.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dlls/cryptnet/cryptnet_main.c b/dlls/cryptnet/cryptnet_main.c index 19de1ed2d8e..01ded96d88f 100644 --- a/dlls/cryptnet/cryptnet_main.c +++ b/dlls/cryptnet/cryptnet_main.c @@ -1696,9 +1696,6 @@ static DWORD verify_cert_revocation_from_dist_points_ext(const CRYPT_DATA_BLOB * return CRYPT_E_REVOCATION_OFFLINE; } - if (find_cached_revocation_status(&cert->pCertInfo->SerialNumber, time, status)) - return status->dwError; - if (!CRYPT_GetUrlFromCRLDistPointsExt(value, NULL, &url_array_size, NULL, NULL)) return GetLastError(); @@ -2146,6 +2143,12 @@ static DWORD verify_cert_revocation(const CERT_CONTEXT *cert, FILETIME *pTime, DWORD error = ERROR_SUCCESS; PCERT_EXTENSION ext; + if (find_cached_revocation_status(&cert->pCertInfo->SerialNumber, pTime, pRevStatus)) + { + if (pRevStatus->dwError == ERROR_SUCCESS || pRevStatus->dwError == CRYPT_E_REVOKED) + return pRevStatus->dwError; + } + if ((ext = CertFindExtension(szOID_AUTHORITY_INFO_ACCESS, cert->pCertInfo->cExtension, cert->pCertInfo->rgExtension))) { error = verify_cert_revocation_from_aia_ext(&ext->Value, cert, pTime, dwFlags, pRevPara, pRevStatus);
participants (1)
-
Alexandre Julliard