crypt32: Pass additional store to CertVerifyRevocation.
This commit is contained in:
parent
c7f158824f
commit
8714c11247
|
@ -2569,7 +2569,8 @@ typedef struct _CERT_CHAIN_PARA_NO_EXTRA_FIELDS {
|
||||||
} CERT_CHAIN_PARA_NO_EXTRA_FIELDS, *PCERT_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,
|
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;
|
DWORD cContext;
|
||||||
|
|
||||||
|
@ -2618,6 +2619,12 @@ static void CRYPT_VerifyChainRevocation(PCERT_CHAIN_CONTEXT chain,
|
||||||
if (chainFlags & CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT)
|
if (chainFlags & CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT)
|
||||||
revocationFlags |= CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG;
|
revocationFlags |= CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG;
|
||||||
revocationPara.pftTimeToUse = pTime;
|
revocationPara.pftTimeToUse = pTime;
|
||||||
|
if (hAdditionalStore)
|
||||||
|
{
|
||||||
|
revocationPara.cCertStore = 1;
|
||||||
|
revocationPara.rgCertStore = &hAdditionalStore;
|
||||||
|
revocationPara.hCrlStore = hAdditionalStore;
|
||||||
|
}
|
||||||
if (pChainPara->cbSize == sizeof(CERT_CHAIN_PARA))
|
if (pChainPara->cbSize == sizeof(CERT_CHAIN_PARA))
|
||||||
{
|
{
|
||||||
revocationPara.dwUrlRetrievalTimeout =
|
revocationPara.dwUrlRetrievalTimeout =
|
||||||
|
@ -2855,8 +2862,8 @@ BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine,
|
||||||
if (!(dwFlags & CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS))
|
if (!(dwFlags & CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS))
|
||||||
CRYPT_FreeLowerQualityChains(chain);
|
CRYPT_FreeLowerQualityChains(chain);
|
||||||
pChain = (PCERT_CHAIN_CONTEXT)chain;
|
pChain = (PCERT_CHAIN_CONTEXT)chain;
|
||||||
if (!pChain->TrustStatus.dwErrorStatus)
|
CRYPT_VerifyChainRevocation(pChain, pTime, hAdditionalStore,
|
||||||
CRYPT_VerifyChainRevocation(pChain, pTime, pChainPara, dwFlags);
|
pChainPara, dwFlags);
|
||||||
CRYPT_CheckUsages(pChain, pChainPara);
|
CRYPT_CheckUsages(pChain, pChainPara);
|
||||||
TRACE_(chain)("error status: %08x\n",
|
TRACE_(chain)("error status: %08x\n",
|
||||||
pChain->TrustStatus.dwErrorStatus);
|
pChain->TrustStatus.dwErrorStatus);
|
||||||
|
|
Loading…
Reference in New Issue