Juan Lang : wintrust: Save signer cert so chain can be created.

Alexandre Julliard julliard at winehq.org
Thu Sep 13 07:17:19 CDT 2007


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Sep 12 08:59:18 2007 -0700

wintrust: Save signer cert so chain can be created.

---

 dlls/wintrust/softpub.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index 2d892b5..86ef84e 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -375,17 +375,22 @@ static BOOL WINTRUST_VerifySigner(CRYPT_PROVIDER_DATA *data, DWORD signerIdx)
 
     if (certInfo)
     {
-        CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA para = { sizeof(para), 0, signerIdx,
-         CMSG_VERIFY_SIGNER_CERT, NULL };
-
-        para.pvSigner = (LPVOID)CertGetSubjectCertificateFromStore(
+        PCCERT_CONTEXT subject = CertGetSubjectCertificateFromStore(
          data->pahStores[0], data->dwEncoding, certInfo);
-        if (para.pvSigner)
+
+        if (subject)
         {
+            CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA para = { sizeof(para), 0,
+             signerIdx, CMSG_VERIFY_SIGNER_CERT, (LPVOID)subject };
+
             ret = CryptMsgControl(data->hMsg, 0, CMSG_CTRL_VERIFY_SIGNATURE_EX,
              &para);
             if (!ret)
                 SetLastError(TRUST_E_CERT_SIGNATURE);
+            else
+                data->psPfns->pfnAddCert2Chain(data, signerIdx, FALSE, 0,
+                 subject);
+            CertFreeCertificateContext(subject);
         }
         else
         {




More information about the wine-cvs mailing list