Juan Lang : wintrust: Use helper function to add the trust steps to execute .

Alexandre Julliard julliard at winehq.org
Tue Sep 23 09:28:22 CDT 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Mon Sep 22 13:18:57 2008 -0700

wintrust: Use helper function to add the trust steps to execute.

---

 dlls/wintrust/wintrust_main.c |   63 ++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c
index 9da584c..a1893d3 100644
--- a/dlls/wintrust/wintrust_main.c
+++ b/dlls/wintrust/wintrust_main.c
@@ -125,6 +125,42 @@ oom:
     return NULL;
 }
 
+/* Adds trust steps for each function in psPfns.  Assumes steps has at least
+ * 5 entries.  Returns the number of steps added.
+ */
+static DWORD WINTRUST_AddTrustStepsFromFunctions(struct wintrust_step *steps,
+ const CRYPT_PROVIDER_FUNCTIONS *psPfns)
+{
+    DWORD numSteps = 0;
+
+    if (psPfns->pfnInitialize)
+    {
+        steps[numSteps].func = psPfns->pfnInitialize;
+        steps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_WVTINIT;
+    }
+    if (psPfns->pfnObjectTrust)
+    {
+        steps[numSteps].func = psPfns->pfnObjectTrust;
+        steps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_OBJPROV;
+    }
+    if (psPfns->pfnSignatureTrust)
+    {
+        steps[numSteps].func = psPfns->pfnSignatureTrust;
+        steps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_SIGPROV;
+    }
+    if (psPfns->pfnCertificateTrust)
+    {
+        steps[numSteps].func = psPfns->pfnCertificateTrust;
+        steps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_CERTPROV;
+    }
+    if (psPfns->pfnFinalPolicy)
+    {
+        steps[numSteps].func = psPfns->pfnFinalPolicy;
+        steps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_POLICYPROV;
+    }
+    return numSteps;
+}
+
 static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
  WINTRUST_DATA *data)
 {
@@ -155,31 +191,8 @@ static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
     provData->pgActionID = actionID;
     WintrustGetRegPolicyFlags(&provData->dwRegPolicySettings);
 
-    if (provData->psPfns->pfnInitialize)
-    {
-        verifySteps[numSteps].func = provData->psPfns->pfnInitialize;
-        verifySteps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_WVTINIT;
-    }
-    if (provData->psPfns->pfnObjectTrust)
-    {
-        verifySteps[numSteps].func = provData->psPfns->pfnObjectTrust;
-        verifySteps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_OBJPROV;
-    }
-    if (provData->psPfns->pfnSignatureTrust)
-    {
-        verifySteps[numSteps].func = provData->psPfns->pfnSignatureTrust;
-        verifySteps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_SIGPROV;
-    }
-    if (provData->psPfns->pfnCertificateTrust)
-    {
-        verifySteps[numSteps].func = provData->psPfns->pfnCertificateTrust;
-        verifySteps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_CERTPROV;
-    }
-    if (provData->psPfns->pfnFinalPolicy)
-    {
-        verifySteps[numSteps].func = provData->psPfns->pfnFinalPolicy;
-        verifySteps[numSteps++].error_index = TRUSTERROR_STEP_FINAL_POLICYPROV;
-    }
+    numSteps = WINTRUST_AddTrustStepsFromFunctions(verifySteps,
+     provData->psPfns);
     err = WINTRUST_ExecuteSteps(verifySteps, numSteps, provData);
     goto done;
 




More information about the wine-cvs mailing list