Juan Lang : crypt32:
Add special case for certificates with no signature algorithm.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Sep 10 10:18:01 CDT 2007
Module: wine
Branch: master
Commit: 5b029479379da1a53d76b751de212ed02501f25d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5b029479379da1a53d76b751de212ed02501f25d
Author: Juan Lang <juan.lang at gmail.com>
Date: Thu Sep 6 10:00:59 2007 -0700
crypt32: Add special case for certificates with no signature algorithm.
---
dlls/crypt32/chain.c | 5 +++++
dlls/crypt32/tests/chain.c | 8 ++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c
index 3759877..5af49e6 100644
--- a/dlls/crypt32/chain.c
+++ b/dlls/crypt32/chain.c
@@ -651,6 +651,11 @@ BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine,
SetLastError(E_INVALIDARG);
return FALSE;
}
+ if (!pCertContext->pCertInfo->SignatureAlgorithm.pszObjId)
+ {
+ SetLastError(ERROR_INVALID_DATA);
+ return FALSE;
+ }
if (!hChainEngine)
hChainEngine = CRYPT_GetDefaultChainEngine();
/* FIXME: what about HCCE_LOCAL_MACHINE? */
diff --git a/dlls/crypt32/tests/chain.c b/dlls/crypt32/tests/chain.c
index bf8a1c5..f713c1d 100644
--- a/dlls/crypt32/tests/chain.c
+++ b/dlls/crypt32/tests/chain.c
@@ -1668,13 +1668,17 @@ static void testGetCertChain(void)
*/
/* Tests with an invalid cert (one whose signature is bad) */
+ SetLastError(0xdeadbeef);
ret = CertGetCertificateChain(NULL, cert, NULL, NULL, ¶, 0, NULL,
&chain);
- ok(!ret, "Expected failure\n");
+ ok(!ret && GetLastError() == ERROR_INVALID_DATA,
+ "Expected ERROR_INVALID_DATA, got %d\n", GetLastError());
para.cbSize = sizeof(para);
+ SetLastError(0xdeadbeef);
ret = CertGetCertificateChain(NULL, cert, NULL, NULL, ¶, 0, NULL,
&chain);
- ok(!ret, "Expected failure\n");
+ ok(!ret && GetLastError() == ERROR_INVALID_DATA,
+ "Expected ERROR_INVALID_DATA, got %d\n", GetLastError());
CertFreeCertificateContext(cert);
for (i = 0; i < sizeof(chainCheck) / sizeof(chainCheck[0]); i++)
More information about the wine-cvs
mailing list