Paul Vriens : crypt32/tests: Make tests run again on win95.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Aug 14 07:13:03 CDT 2007
Module: wine
Branch: master
Commit: c0b88f880f4a90cd78ec66d9fa96c9abfb8771b0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c0b88f880f4a90cd78ec66d9fa96c9abfb8771b0
Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date: Tue Aug 14 11:53:22 2007 +0200
crypt32/tests: Make tests run again on win95.
---
dlls/crypt32/tests/cert.c | 39 ++++++++++++++++++++++-----------------
dlls/crypt32/tests/msg.c | 43 +++++++++++++++++++++++++++++++------------
2 files changed, 53 insertions(+), 29 deletions(-)
diff --git a/dlls/crypt32/tests/cert.c b/dlls/crypt32/tests/cert.c
index 6a73c91..89b51e7 100644
--- a/dlls/crypt32/tests/cert.c
+++ b/dlls/crypt32/tests/cert.c
@@ -32,19 +32,24 @@
static BOOL (WINAPI * pCryptVerifyCertificateSignatureEx)
(HCRYPTPROV, DWORD, DWORD, void *, DWORD, void *, DWORD, void *);
-#define CRYPT_GET_PROC(func) \
- p ## func = (void *)GetProcAddress(hCrypt32, #func);
+static BOOL (WINAPI * pCryptAcquireContextW)
+ (HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD);
static void init_function_pointers(void)
{
- HMODULE hCrypt32;
+ HMODULE hCrypt32 = GetModuleHandleA("crypt32.dll");
+ HMODULE hAdvapi32 = GetModuleHandleA("advapi32.dll");
- pCryptVerifyCertificateSignatureEx = NULL;
+#define GET_PROC(dll, func) \
+ p ## func = (void *)GetProcAddress(dll, #func); \
+ if(!p ## func) \
+ trace("GetProcAddress(%s) failed\n", #func);
- hCrypt32 = GetModuleHandleA("crypt32.dll");
- assert(hCrypt32);
+ GET_PROC(hCrypt32, CryptVerifyCertificateSignatureEx)
- CRYPT_GET_PROC(CryptVerifyCertificateSignatureEx);
+ GET_PROC(hAdvapi32, CryptAcquireContextW)
+
+#undef GET_PROC
}
static BYTE subjectName[] = { 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06,
@@ -1519,9 +1524,9 @@ static void testCertSigs(void)
DWORD sigSize = sizeof(sig);
/* Just in case a previous run failed, delete this thing */
- CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
- ret = CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ ret = pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_NEWKEYSET);
ok(ret, "CryptAcquireContext failed: %08x\n", GetLastError());
@@ -1530,7 +1535,7 @@ static void testCertSigs(void)
CryptDestroyKey(key);
CryptReleaseContext(csp, 0);
- ret = CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ ret = pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
}
@@ -1645,9 +1650,9 @@ static void testCreateSelfSignCert(void)
*/
/* Acquire a CSP */
- CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
- ret = CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ ret = pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_NEWKEYSET);
ok(ret, "CryptAcquireContext failed: %08x\n", GetLastError());
@@ -1702,7 +1707,7 @@ static void testCreateSelfSignCert(void)
}
CryptReleaseContext(csp, 0);
- ret = CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ ret = pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
/* do the same test with AT_KEYEXCHANGE and key info*/
@@ -1750,7 +1755,7 @@ static void testCreateSelfSignCert(void)
CertFreeCertificateContext(context);
}
- CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
}
@@ -2359,7 +2364,7 @@ static void testAcquireCertPrivateKey(void)
keyProvInfo.rgProvParam = NULL;
keyProvInfo.dwKeySpec = AT_SIGNATURE;
- CryptAcquireContextW(NULL, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ pCryptAcquireContextW(NULL, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
cert = CertCreateCertificateContext(X509_ASN_ENCODING, selfSignedCert,
@@ -2392,7 +2397,7 @@ static void testAcquireCertPrivateKey(void)
ok(!ret && GetLastError() == CRYPT_E_NO_KEY_PROPERTY,
"Expected CRYPT_E_NO_KEY_PROPERTY, got %08x\n", GetLastError());
- CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_NEWKEYSET);
ret = CryptImportKey(csp, privKey, sizeof(privKey), 0, 0, &key);
ok(ret, "CryptImportKey failed: %08x\n", GetLastError());
@@ -2513,7 +2518,7 @@ static void testAcquireCertPrivateKey(void)
}
CryptReleaseContext(csp, 0);
- CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+ pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
CertFreeCertificateContext(cert);
diff --git a/dlls/crypt32/tests/msg.c b/dlls/crypt32/tests/msg.c
index dba0752..15f6baa 100644
--- a/dlls/crypt32/tests/msg.c
+++ b/dlls/crypt32/tests/msg.c
@@ -29,6 +29,23 @@
static char oid_rsa_md5[] = szOID_RSA_MD5;
+static BOOL (WINAPI * pCryptAcquireContextW)
+ (HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD);
+
+static void init_function_pointers(void)
+{
+ HMODULE hAdvapi32 = GetModuleHandleA("advapi32.dll");
+
+#define GET_PROC(dll, func) \
+ p ## func = (void *)GetProcAddress(dll, #func); \
+ if(!p ## func) \
+ trace("GetProcAddress(%s) failed\n", #func);
+
+ GET_PROC(hAdvapi32, CryptAcquireContextW)
+
+#undef GET_PROC
+}
+
static void test_msg_open_to_encode(void)
{
HCRYPTMSG msg;
@@ -1042,10 +1059,10 @@ static void test_signed_msg_open(void)
"Expected ERROR_INVALID_PARAMETER, got %x\n", GetLastError());
}
/* The signer's hCryptProv must also be valid. */
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, CRYPT_NEWKEYSET);
if (!ret && GetLastError() == NTE_EXISTS)
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, 0);
ok(ret, "CryptAcquireContextW failed: %x\n", GetLastError());
msg = CryptMsgOpenToEncode(PKCS_7_ASN_ENCODING, 0, CMSG_SIGNED, &signInfo,
@@ -1054,7 +1071,7 @@ static void test_signed_msg_open(void)
CryptMsgClose(msg);
CryptReleaseContext(signer.hCryptProv, 0);
- CryptAcquireContextW(&signer.hCryptProv, cspNameW, MS_DEF_PROV_W,
+ pCryptAcquireContextW(&signer.hCryptProv, cspNameW, MS_DEF_PROV_W,
PROV_RSA_FULL, CRYPT_DELETEKEYSET);
}
@@ -1101,10 +1118,10 @@ static void test_signed_msg_update(void)
signer.HashAlgorithm.pszObjId = oid_rsa_md5;
signInfo.cSigners = 1;
signInfo.rgSigners = &signer;
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, CRYPT_NEWKEYSET);
if (!ret && GetLastError() == NTE_EXISTS)
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, 0);
ok(ret, "CryptAcquireContextW failed: %x\n", GetLastError());
msg = CryptMsgOpenToEncode(PKCS_7_ASN_ENCODING,
@@ -1183,7 +1200,7 @@ static void test_signed_msg_update(void)
CryptDestroyKey(key);
CryptReleaseContext(signer.hCryptProv, 0);
- CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL, PROV_RSA_FULL,
+ pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
}
@@ -1428,10 +1445,10 @@ static void test_signed_msg_encoding(void)
signer.HashAlgorithm.pszObjId = oid_rsa_md5;
signInfo.cSigners = 1;
signInfo.rgSigners = &signer;
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, CRYPT_NEWKEYSET);
if (!ret && GetLastError() == NTE_EXISTS)
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, 0);
ok(ret, "CryptAcquireContextW failed: %x\n", GetLastError());
ret = CryptImportKey(signer.hCryptProv, (LPBYTE)privKey, sizeof(privKey),
@@ -1546,7 +1563,7 @@ static void test_signed_msg_encoding(void)
CryptDestroyKey(key);
CryptReleaseContext(signer.hCryptProv, 0);
- CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL, PROV_RSA_FULL,
+ pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
}
@@ -1605,10 +1622,10 @@ static void test_signed_msg_get_param(void)
signer.HashAlgorithm.pszObjId = oid_rsa_md5;
signInfo.cSigners = 1;
signInfo.rgSigners = &signer;
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, CRYPT_NEWKEYSET);
if (!ret && GetLastError() == NTE_EXISTS)
- ret = CryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
+ ret = pCryptAcquireContextW(&signer.hCryptProv, cspNameW, NULL,
PROV_RSA_FULL, 0);
ok(ret, "CryptAcquireContextW failed: %x\n", GetLastError());
msg = CryptMsgOpenToEncode(PKCS_7_ASN_ENCODING, 0, CMSG_SIGNED, &signInfo,
@@ -1640,7 +1657,7 @@ static void test_signed_msg_get_param(void)
CryptMsgClose(msg);
CryptReleaseContext(signer.hCryptProv, 0);
- CryptAcquireContextW(&signer.hCryptProv, cspNameW, MS_DEF_PROV_W,
+ pCryptAcquireContextW(&signer.hCryptProv, cspNameW, MS_DEF_PROV_W,
PROV_RSA_FULL, CRYPT_DELETEKEYSET);
}
@@ -2042,6 +2059,8 @@ static void test_decode_msg(void)
START_TEST(msg)
{
+ init_function_pointers();
+
/* Basic parameter checking tests */
test_msg_open_to_encode();
test_msg_open_to_decode();
More information about the wine-cvs
mailing list