Module: wine Branch: master Commit: 277ef05efb3431b4f1b34266d9d0e9283e1eb693 URL: http://source.winehq.org/git/wine.git/?a=commit;h=277ef05efb3431b4f1b34266d9...
Author: Juan Lang juan.lang@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, ¶); if (!ret) SetLastError(TRUST_E_CERT_SIGNATURE); + else + data->psPfns->pfnAddCert2Chain(data, signerIdx, FALSE, 0, + subject); + CertFreeCertificateContext(subject); } else {