Juan Lang : wintrust: Use helper function for setting confidence in SoftpubCheckCert.

Alexandre Julliard julliard at winehq.org
Tue Sep 30 11:15:40 CDT 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Sat Sep 27 11:32:04 2008 -0700

wintrust: Use helper function for setting confidence in SoftpubCheckCert.

---

 dlls/wintrust/softpub.c |   44 +++++++++++++++++---------------------------
 1 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index 9ee1ba7..918e103 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -501,6 +501,20 @@ HRESULT WINAPI SoftpubLoadSignature(CRYPT_PROVIDER_DATA *data)
     return ret ? S_OK : S_FALSE;
 }
 
+static DWORD WINTRUST_TrustStatusToConfidence(DWORD errorStatus)
+{
+    DWORD confidence = 0;
+
+    confidence = 0;
+    if (!(errorStatus & CERT_TRUST_IS_NOT_SIGNATURE_VALID))
+        confidence |= CERT_CONFIDENCE_SIG;
+    if (!(errorStatus & CERT_TRUST_IS_NOT_TIME_VALID))
+        confidence |= CERT_CONFIDENCE_TIME;
+    if (!(errorStatus & CERT_TRUST_IS_NOT_TIME_NESTED))
+        confidence |= CERT_CONFIDENCE_TIMENEST;
+    return confidence;
+}
+
 BOOL WINAPI SoftpubCheckCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner,
  BOOL fCounterSignerChain, DWORD idxCounterSigner)
 {
@@ -524,19 +538,9 @@ BOOL WINAPI SoftpubCheckCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner,
         for (i = 0; i < simpleChain->cElement; i++)
         {
             /* Set confidence */
-            data->pasSigners[idxSigner].pasCertChain[i].dwConfidence = 0;
-            if (!(simpleChain->rgpElement[i]->TrustStatus.dwErrorStatus &
-             CERT_TRUST_IS_NOT_TIME_VALID))
-                data->pasSigners[idxSigner].pasCertChain[i].dwConfidence
-                 |= CERT_CONFIDENCE_TIME;
-            if (!(simpleChain->rgpElement[i]->TrustStatus.dwErrorStatus &
-             CERT_TRUST_IS_NOT_TIME_NESTED))
-                data->pasSigners[idxSigner].pasCertChain[i].dwConfidence
-                 |= CERT_CONFIDENCE_TIMENEST;
-            if (!(simpleChain->rgpElement[i]->TrustStatus.dwErrorStatus &
-             CERT_TRUST_IS_NOT_SIGNATURE_VALID))
-                data->pasSigners[idxSigner].pasCertChain[i].dwConfidence
-                 |= CERT_CONFIDENCE_SIG;
+            data->pasSigners[idxSigner].pasCertChain[i].dwConfidence =
+             WINTRUST_TrustStatusToConfidence(
+             simpleChain->rgpElement[i]->TrustStatus.dwErrorStatus);
             /* Set additional flags */
             if (!(simpleChain->rgpElement[i]->TrustStatus.dwErrorStatus &
              CERT_TRUST_IS_UNTRUSTED_ROOT))
@@ -552,20 +556,6 @@ BOOL WINAPI SoftpubCheckCert(CRYPT_PROVIDER_DATA *data, DWORD idxSigner,
     return ret;
 }
 
-static DWORD WINTRUST_TrustStatusToConfidence(DWORD errorStatus)
-{
-    DWORD confidence = 0;
-
-    confidence = 0;
-    if (!(errorStatus & CERT_TRUST_IS_NOT_SIGNATURE_VALID))
-        confidence |= CERT_CONFIDENCE_SIG;
-    if (!(errorStatus & CERT_TRUST_IS_NOT_TIME_VALID))
-        confidence |= CERT_CONFIDENCE_TIME;
-    if (!(errorStatus & CERT_TRUST_IS_NOT_TIME_NESTED))
-        confidence |= CERT_CONFIDENCE_TIMENEST;
-    return confidence;
-}
-
 static DWORD WINTRUST_TrustStatusToError(DWORD errorStatus)
 {
     DWORD error;




More information about the wine-cvs mailing list