wintrust(1/4): Implement WTHelperGetProvSignerFromChain

Juan Lang juan.lang at gmail.com
Tue Aug 14 17:39:16 CDT 2007


--Juan
-------------- next part --------------
From 4d1dd703928620d938c03046fe1bec67bee5eed0 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Tue, 14 Aug 2007 10:14:54 -0700
Subject: [PATCH] Implement WTHelperGetProvSignerFromChain
---
 dlls/wintrust/wintrust_main.c |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c
index 66ad322..8e7859d 100644
--- a/dlls/wintrust/wintrust_main.c
+++ b/dlls/wintrust/wintrust_main.c
@@ -105,9 +105,23 @@ CRYPT_PROVIDER_SGNR * WINAPI WTHelperGet
  CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner,
  DWORD idxCounterSigner)
 {
-    FIXME("%p %d %d %d\n", pProvData, idxSigner, fCounterSigner,
+    CRYPT_PROVIDER_SGNR *sgnr;
+
+    TRACE("(%p %d %d %d)\n", pProvData, idxSigner, fCounterSigner,
      idxCounterSigner);
-    return NULL;
+
+    if (idxSigner >= pProvData->csSigners || !pProvData->pasSigners)
+        return NULL;
+    sgnr = &pProvData->pasSigners[idxSigner];
+    if (fCounterSigner)
+    {
+        if (idxCounterSigner >= sgnr->csCounterSigners ||
+         !sgnr->pasCounterSigners)
+            return NULL;
+        sgnr = &sgnr->pasCounterSigners[idxCounterSigner];
+    }
+    TRACE("returning %p\n", sgnr);
+    return sgnr;
 }
 
 /***********************************************************************
-- 
1.4.1


More information about the wine-patches mailing list