crypt32(1/5): (Re)introduce helper function to get issuer
certificate
Juan Lang
juan.lang at gmail.com
Tue Sep 11 14:53:22 CDT 2007
--Juan
-------------- next part --------------
From 15c3bb37c798184219cd1c40c432196b48bb3097 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Tue, 11 Sep 2007 12:47:13 -0700
Subject: [PATCH] (Re)introduce helper function to get issuer certificate
---
dlls/crypt32/chain.c | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c
index ed23180..f7d3849 100644
--- a/dlls/crypt32/chain.c
+++ b/dlls/crypt32/chain.c
@@ -511,6 +511,17 @@ static void CRYPT_CheckSimpleChain(PCert
CRYPT_CombineTrustStatus(&chain->TrustStatus, &rootElement->TrustStatus);
}
+static PCCERT_CONTEXT CRYPT_GetIssuer(HCERTSTORE store, PCCERT_CONTEXT subject,
+ PCCERT_CONTEXT prevIssuer)
+{
+ PCCERT_CONTEXT issuer;
+ DWORD flags = 0;
+
+ issuer = CertGetIssuerCertificateFromStore(store, subject, prevIssuer,
+ &flags);
+ return issuer;
+}
+
/* Builds a simple chain by finding an issuer for the last cert in the chain,
* until reaching a self-signed cert, or until no issuer can be found.
*/
@@ -523,9 +534,7 @@ static BOOL CRYPT_BuildSimpleChain(PCert
while (ret && !CRYPT_IsSimpleChainCyclic(chain) &&
!CRYPT_IsCertificateSelfSigned(cert))
{
- DWORD flags = 0;
- PCCERT_CONTEXT issuer =
- CertGetIssuerCertificateFromStore(world, cert, NULL, &flags);
+ PCCERT_CONTEXT issuer = CRYPT_GetIssuer(world, cert, NULL);
if (issuer)
{
@@ -782,7 +791,7 @@ static PCertificateChain CRYPT_BuildAlte
alternate = NULL;
else
{
- DWORD i, j, flags;
+ DWORD i, j;
PCCERT_CONTEXT alternateIssuer = NULL;
alternate = NULL;
@@ -795,9 +804,8 @@ static PCertificateChain CRYPT_BuildAlte
PCCERT_CONTEXT prevIssuer = CertDuplicateCertificateContext(
chain->context.rgpChain[i]->rgpElement[j + 1]->pCertContext);
- flags = CERT_STORE_REVOCATION_FLAG | CERT_STORE_SIGNATURE_FLAG;
- alternateIssuer = CertGetIssuerCertificateFromStore(
- prevIssuer->hCertStore, subject, prevIssuer, &flags);
+ alternateIssuer = CRYPT_GetIssuer(prevIssuer->hCertStore,
+ subject, prevIssuer);
}
if (alternateIssuer)
{
--
1.4.1
More information about the wine-patches
mailing list