Paul Vriens : secur32/tests: Run tests on win95 again.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 16 05:38:27 CDT 2007


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

Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date:   Wed Aug 15 13:33:47 2007 +0200

secur32/tests: Run tests on win95 again.

---

 dlls/secur32/tests/schannel.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/dlls/secur32/tests/schannel.c b/dlls/secur32/tests/schannel.c
index b71040a..785ad26 100644
--- a/dlls/secur32/tests/schannel.c
+++ b/dlls/secur32/tests/schannel.c
@@ -32,6 +32,8 @@ static SECURITY_STATUS (SEC_ENTRY * pAcquireCredentialsHandleA)(SEC_CHAR*, SEC_C
                             ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID, PCredHandle, PTimeStamp);
 static SECURITY_STATUS (SEC_ENTRY * pFreeCredentialsHandle)(PCredHandle);
 
+static BOOL (WINAPI * pCryptAcquireContextW)(HCRYPTPROV*, LPCWSTR, LPCWSTR, DWORD, DWORD);
+
 static const BYTE bigCert[] = { 0x30, 0x7a, 0x02, 0x01, 0x01, 0x30, 0x02, 0x06,
  0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
  0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x22,
@@ -97,6 +99,8 @@ static const BYTE selfSignedCert[] = {
 
 static void InitFunctionPtrs(void)
 {
+    HMODULE advapi32dll = GetModuleHandleA("advapi32.dll");
+
     secdll = LoadLibraryA("secur32.dll");
     if(!secdll)
         secdll = LoadLibraryA("security.dll");
@@ -105,6 +109,8 @@ static void InitFunctionPtrs(void)
         pAcquireCredentialsHandleA = (PVOID)GetProcAddress(secdll, "AcquireCredentialsHandleA");
         pFreeCredentialsHandle = (PVOID)GetProcAddress(secdll, "FreeCredentialsHandle");
     }
+
+    pCryptAcquireContextW = (void *)GetProcAddress(advapi32dll, "CryptAcquireContextW");
 }
 
 static void testAcquireSecurityContext(void)
@@ -136,7 +142,7 @@ static void testAcquireSecurityContext(void)
     certs[1] = CertCreateCertificateContext(X509_ASN_ENCODING, selfSignedCert,
      sizeof(selfSignedCert));
 
-    CryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
+    pCryptAcquireContextW(&csp, cspNameW, MS_DEF_PROV_W, PROV_RSA_FULL,
      CRYPT_DELETEKEYSET);
 
     st = pAcquireCredentialsHandleA(NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL,
@@ -253,7 +259,7 @@ static void testAcquireSecurityContext(void)
     ok(st == SEC_E_UNKNOWN_CREDENTIALS,
      "Expected SEC_E_UNKNOWN_CREDENTIALS, got %08x\n", st);
 
-    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, "CryptAcquireContextW failed: %08x\n", GetLastError());
     ret = CryptImportKey(csp, privKey, sizeof(privKey), 0, 0, &key);
@@ -336,7 +342,7 @@ static void testAcquireSecurityContext(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(certs[0]);
@@ -347,8 +353,10 @@ START_TEST(schannel)
 {
     InitFunctionPtrs();
 
-    if (pAcquireCredentialsHandleA && pFreeCredentialsHandle)
+    if (pAcquireCredentialsHandleA && pFreeCredentialsHandle && pCryptAcquireContextW)
         testAcquireSecurityContext();
+    else
+        skip("Needed functions are not available\n");
 
     if(secdll)
         FreeLibrary(secdll);




More information about the wine-cvs mailing list