Juan Lang : wintrust: Separate loading a message from a WINTRUST_CERT_INFO into a helper function .
Alexandre Julliard
julliard at winehq.org
Fri Oct 24 08:12:41 CDT 2008
Module: wine
Branch: master
Commit: 6455674c9792ee4a5ee45690189af99e6931c445
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6455674c9792ee4a5ee45690189af99e6931c445
Author: Juan Lang <juan.lang at gmail.com>
Date: Thu Oct 23 13:40:34 2008 -0700
wintrust: Separate loading a message from a WINTRUST_CERT_INFO into a helper function.
---
dlls/wintrust/softpub.c | 83 +++++++++++++++++++++++++---------------------
1 files changed, 45 insertions(+), 38 deletions(-)
diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index 6faaa1f..72d223c 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -249,61 +249,68 @@ error:
return ret;
}
-HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
+static BOOL SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
{
BOOL ret;
- TRACE("(%p)\n", data);
-
- if (!data->padwTrustStepErrors)
- return S_FALSE;
-
- switch (data->pWintrustData->dwUnionChoice)
+ if (data->pWintrustData->u.pCert &&
+ data->pWintrustData->u.pCert->cbStruct == sizeof(WINTRUST_CERT_INFO))
{
- case WTD_CHOICE_CERT:
- if (data->pWintrustData->u.pCert &&
- data->pWintrustData->u.pCert->cbStruct == sizeof(WINTRUST_CERT_INFO))
+ if (data->psPfns)
{
- if (data->psPfns)
+ CRYPT_PROVIDER_SGNR signer = { sizeof(signer), { 0 } };
+ DWORD i;
+
+ /* Add a signer with nothing but the time to verify, so we can
+ * add a cert to it
+ */
+ if (data->pWintrustData->u.pCert->psftVerifyAsOf)
+ data->sftSystemTime = signer.sftVerifyAsOf;
+ else
{
- CRYPT_PROVIDER_SGNR signer = { sizeof(signer), { 0 } };
- DWORD i;
-
- /* Add a signer with nothing but the time to verify, so we can
- * add a cert to it
- */
- if (data->pWintrustData->u.pCert->psftVerifyAsOf)
- data->sftSystemTime = signer.sftVerifyAsOf;
- else
- {
- SYSTEMTIME sysTime;
+ SYSTEMTIME sysTime;
- GetSystemTime(&sysTime);
- SystemTimeToFileTime(&sysTime, &signer.sftVerifyAsOf);
- }
- ret = data->psPfns->pfnAddSgnr2Chain(data, FALSE, 0, &signer);
- if (!ret)
- goto error;
+ GetSystemTime(&sysTime);
+ SystemTimeToFileTime(&sysTime, &signer.sftVerifyAsOf);
+ }
+ ret = data->psPfns->pfnAddSgnr2Chain(data, FALSE, 0, &signer);
+ if (ret)
+ {
ret = data->psPfns->pfnAddCert2Chain(data, 0, FALSE, 0,
data->pWintrustData->u.pCert->psCertContext);
- if (!ret)
- goto error;
for (i = 0; ret && i < data->pWintrustData->u.pCert->chStores;
i++)
ret = data->psPfns->pfnAddStore2Chain(data,
data->pWintrustData->u.pCert->pahStores[i]);
}
- else
- {
- /* Do nothing!? See the tests */
- ret = TRUE;
- }
}
else
{
- SetLastError(ERROR_INVALID_PARAMETER);
- ret = FALSE;
+ /* Do nothing!? See the tests */
+ ret = TRUE;
}
+ }
+ else
+ {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ ret = FALSE;
+ }
+ return ret;
+}
+
+HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
+{
+ BOOL ret;
+
+ TRACE("(%p)\n", data);
+
+ if (!data->padwTrustStepErrors)
+ return S_FALSE;
+
+ switch (data->pWintrustData->dwUnionChoice)
+ {
+ case WTD_CHOICE_CERT:
+ ret = SOFTPUB_LoadCertMessage(data);
break;
case WTD_CHOICE_FILE:
if (!data->pWintrustData->u.pFile)
More information about the wine-cvs
mailing list