Juan Lang : crypt32: Pass additional store to CertVerifyRevocation.

Alexandre Julliard julliard at winehq.org
Mon Oct 25 10:58:19 CDT 2010


Module: wine
Branch: master
Commit: 8714c11247f25d9adca1adfb4ce466604cbba1a7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8714c11247f25d9adca1adfb4ce466604cbba1a7

Author: Juan Lang <juan.lang at 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);




More information about the wine-cvs mailing list