Module: wine Branch: master Commit: 8714c11247f25d9adca1adfb4ce466604cbba1a7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8714c11247f25d9adca1adfb4c...
Author: Juan Lang juan.lang@gmail.com Date: Thu Oct 21 09:06:39 2010 -0700
crypt32: Pass additional store to CertVerifyRevocation.
---
dlls/crypt32/chain.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c index af8f386..e3cf401 100644 --- a/dlls/crypt32/chain.c +++ b/dlls/crypt32/chain.c @@ -2569,7 +2569,8 @@ typedef struct _CERT_CHAIN_PARA_NO_EXTRA_FIELDS { } CERT_CHAIN_PARA_NO_EXTRA_FIELDS, *PCERT_CHAIN_PARA_NO_EXTRA_FIELDS;
static void CRYPT_VerifyChainRevocation(PCERT_CHAIN_CONTEXT chain, - LPFILETIME pTime, const CERT_CHAIN_PARA *pChainPara, DWORD chainFlags) + LPFILETIME pTime, HCERTSTORE hAdditionalStore, + const CERT_CHAIN_PARA *pChainPara, DWORD chainFlags) { DWORD cContext;
@@ -2618,6 +2619,12 @@ static void CRYPT_VerifyChainRevocation(PCERT_CHAIN_CONTEXT chain, if (chainFlags & CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT) revocationFlags |= CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG; revocationPara.pftTimeToUse = pTime; + if (hAdditionalStore) + { + revocationPara.cCertStore = 1; + revocationPara.rgCertStore = &hAdditionalStore; + revocationPara.hCrlStore = hAdditionalStore; + } if (pChainPara->cbSize == sizeof(CERT_CHAIN_PARA)) { revocationPara.dwUrlRetrievalTimeout = @@ -2855,8 +2862,8 @@ BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, if (!(dwFlags & CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS)) CRYPT_FreeLowerQualityChains(chain); pChain = (PCERT_CHAIN_CONTEXT)chain; - if (!pChain->TrustStatus.dwErrorStatus) - CRYPT_VerifyChainRevocation(pChain, pTime, pChainPara, dwFlags); + CRYPT_VerifyChainRevocation(pChain, pTime, hAdditionalStore, + pChainPara, dwFlags); CRYPT_CheckUsages(pChain, pChainPara); TRACE_(chain)("error status: %08x\n", pChain->TrustStatus.dwErrorStatus);