mirror of
https://github.com/reactos/wine.git
synced 2025-02-03 10:43:30 +00:00
Fix missing imports on NT4.
This commit is contained in:
parent
d7292751e0
commit
2d136f0de9
@ -34,6 +34,26 @@ static const char szKeySet[] = "wine_test_keyset";
|
||||
static const char szBadKeySet[] = "wine_test_bad_keyset";
|
||||
#define NON_DEF_PROV_TYPE 999
|
||||
|
||||
static HMODULE hadvapi32;
|
||||
static BOOL (WINAPI *pCryptEnumProviderTypesA)(DWORD, DWORD*, DWORD, DWORD*, LPSTR, DWORD*);
|
||||
static BOOL (WINAPI *pCryptEnumProvidersA)(DWORD, DWORD*, DWORD, DWORD*, LPSTR, DWORD*);
|
||||
static BOOL (WINAPI *pCryptGetDefaultProviderA)(DWORD, DWORD*, DWORD, LPSTR, DWORD*);
|
||||
static BOOL (WINAPI *pCryptSetProviderExA)(LPCSTR, DWORD, DWORD*, DWORD);
|
||||
|
||||
static void init_function_pointers(void)
|
||||
{
|
||||
hadvapi32 = GetModuleHandleA("advapi32.dll");
|
||||
|
||||
if(hadvapi32)
|
||||
{
|
||||
pCryptEnumProviderTypesA = (void*)GetProcAddress(hadvapi32, "CryptEnumProviderTypesA");
|
||||
pCryptEnumProvidersA = (void*)GetProcAddress(hadvapi32, "CryptEnumProvidersA");
|
||||
pCryptGetDefaultProviderA = (void*)GetProcAddress(hadvapi32, "CryptGetDefaultProviderA");
|
||||
pCryptSetProviderExA = (void*)GetProcAddress(hadvapi32, "CryptSetProviderExA");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void init_environment(void)
|
||||
{
|
||||
HCRYPTPROV hProv;
|
||||
@ -176,15 +196,21 @@ static void test_enum_providers(void)
|
||||
DWORD notNull = 5;
|
||||
DWORD notZeroFlags = 5;
|
||||
|
||||
if(!pCryptEnumProvidersA)
|
||||
{
|
||||
trace("skipping CryptEnumProviders tests\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!FindProvRegVals(dwIndex, &dwType, &pszProvName, &cbName, &provCount))
|
||||
return;
|
||||
|
||||
/* check pdwReserved flag for NULL */
|
||||
result = CryptEnumProviders(dwIndex, ¬Null, 0, &type, NULL, &providerLen);
|
||||
result = pCryptEnumProvidersA(dwIndex, ¬Null, 0, &type, NULL, &providerLen);
|
||||
ok(!result && GetLastError()==ERROR_INVALID_PARAMETER, "%ld\n", GetLastError());
|
||||
|
||||
/* check dwFlags == 0 */
|
||||
result = CryptEnumProviders(dwIndex, NULL, notZeroFlags, &type, NULL, &providerLen);
|
||||
result = pCryptEnumProvidersA(dwIndex, NULL, notZeroFlags, &type, NULL, &providerLen);
|
||||
ok(!result && GetLastError()==NTE_BAD_FLAGS, "%ld\n", GetLastError());
|
||||
|
||||
/* alloc provider to half the size required
|
||||
@ -193,7 +219,7 @@ static void test_enum_providers(void)
|
||||
if (!(provider = ((LPSTR)LocalAlloc(LMEM_ZEROINIT, providerLen))))
|
||||
return;
|
||||
|
||||
result = CryptEnumProviders(dwIndex, NULL, 0, &type, provider, &providerLen);
|
||||
result = pCryptEnumProvidersA(dwIndex, NULL, 0, &type, provider, &providerLen);
|
||||
ok(!result && GetLastError()==ERROR_MORE_DATA, "expected %i, got %ld\n",
|
||||
ERROR_MORE_DATA, GetLastError());
|
||||
|
||||
@ -203,7 +229,7 @@ static void test_enum_providers(void)
|
||||
* after loop ends, count should be provCount + 1 so subtract 1
|
||||
* to get actual number of providers */
|
||||
count = 0;
|
||||
while(CryptEnumProviders(count++, NULL, 0, &type, NULL, &providerLen))
|
||||
while(pCryptEnumProvidersA(count++, NULL, 0, &type, NULL, &providerLen))
|
||||
;
|
||||
count--;
|
||||
ok(count==provCount, "expected %i, got %i\n", (int)provCount, (int)count);
|
||||
@ -211,17 +237,17 @@ static void test_enum_providers(void)
|
||||
/* loop past the actual number of providers to get the error
|
||||
* ERROR_NO_MORE_ITEMS */
|
||||
for (count = 0; count < provCount + 1; count++)
|
||||
result = CryptEnumProviders(count, NULL, 0, &type, NULL, &providerLen);
|
||||
result = pCryptEnumProvidersA(count, NULL, 0, &type, NULL, &providerLen);
|
||||
ok(!result && GetLastError()==ERROR_NO_MORE_ITEMS, "expected %i, got %ld\n",
|
||||
ERROR_NO_MORE_ITEMS, GetLastError());
|
||||
|
||||
/* check expected versus actual values returned */
|
||||
result = CryptEnumProviders(dwIndex, NULL, 0, &type, NULL, &providerLen);
|
||||
result = pCryptEnumProvidersA(dwIndex, NULL, 0, &type, NULL, &providerLen);
|
||||
ok(result && providerLen==cbName, "expected %i, got %i\n", (int)cbName, (int)providerLen);
|
||||
if (!(provider = ((LPSTR)LocalAlloc(LMEM_ZEROINIT, providerLen))))
|
||||
return;
|
||||
|
||||
result = CryptEnumProviders(dwIndex, NULL, 0, &type, provider, &providerLen);
|
||||
result = pCryptEnumProvidersA(dwIndex, NULL, 0, &type, provider, &providerLen);
|
||||
ok(result && type==dwType, "expected %ld, got %ld\n",
|
||||
dwType, type);
|
||||
ok(result && !strcmp(pszProvName, provider), "expected %s, got %s\n", pszProvName, provider);
|
||||
@ -294,6 +320,12 @@ static void test_enum_provider_types()
|
||||
DWORD notNull = 5;
|
||||
DWORD notZeroFlags = 5;
|
||||
|
||||
if(!pCryptEnumProviderTypesA)
|
||||
{
|
||||
trace("skipping CryptEnumProviderTypes tests\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!FindProvTypesRegVals(index, &dwProvType, &pszTypeName, &cbTypeName, &dwTypeCount))
|
||||
{
|
||||
trace("could not find provider types in registry, skipping the test\n");
|
||||
@ -301,12 +333,12 @@ static void test_enum_provider_types()
|
||||
}
|
||||
|
||||
/* check pdwReserved for NULL */
|
||||
result = CryptEnumProviderTypes(index, ¬Null, 0, &provType, typeName, &typeNameSize);
|
||||
result = pCryptEnumProviderTypesA(index, ¬Null, 0, &provType, typeName, &typeNameSize);
|
||||
ok(!result && GetLastError()==ERROR_INVALID_PARAMETER, "expected %i, got %ld\n",
|
||||
ERROR_INVALID_PARAMETER, GetLastError());
|
||||
|
||||
/* check dwFlags == zero */
|
||||
result = CryptEnumProviderTypes(index, NULL, notZeroFlags, &provType, typeName, &typeNameSize);
|
||||
result = pCryptEnumProviderTypesA(index, NULL, notZeroFlags, &provType, typeName, &typeNameSize);
|
||||
ok(!result && GetLastError()==NTE_BAD_FLAGS, "expected %i, got %ld\n",
|
||||
ERROR_INVALID_PARAMETER, GetLastError());
|
||||
|
||||
@ -319,7 +351,7 @@ static void test_enum_provider_types()
|
||||
/* This test fails under Win2k SP4:
|
||||
result = TRUE, GetLastError() == 0xdeadbeef
|
||||
SetLastError(0xdeadbeef);
|
||||
result = CryptEnumProviderTypes(index, NULL, 0, &provType, typeName, &typeNameSize);
|
||||
result = pCryptEnumProviderTypesA(index, NULL, 0, &provType, typeName, &typeNameSize);
|
||||
ok(!result && GetLastError()==ERROR_MORE_DATA, "expected 0/ERROR_MORE_DATA, got %d/%08lx\n",
|
||||
result, GetLastError());
|
||||
*/
|
||||
@ -330,7 +362,7 @@ static void test_enum_provider_types()
|
||||
* after loop ends, count should be dwTypeCount + 1 so subtract 1
|
||||
* to get actual number of provider types */
|
||||
typeCount = 0;
|
||||
while(CryptEnumProviderTypes(typeCount++, NULL, 0, &provType, NULL, &typeNameSize))
|
||||
while(pCryptEnumProviderTypesA(typeCount++, NULL, 0, &provType, NULL, &typeNameSize))
|
||||
;
|
||||
typeCount--;
|
||||
ok(typeCount==dwTypeCount, "expected %ld, got %ld\n", dwTypeCount, typeCount);
|
||||
@ -338,19 +370,19 @@ static void test_enum_provider_types()
|
||||
/* loop past the actual number of provider types to get the error
|
||||
* ERROR_NO_MORE_ITEMS */
|
||||
for (typeCount = 0; typeCount < dwTypeCount + 1; typeCount++)
|
||||
result = CryptEnumProviderTypes(typeCount, NULL, 0, &provType, NULL, &typeNameSize);
|
||||
result = pCryptEnumProviderTypesA(typeCount, NULL, 0, &provType, NULL, &typeNameSize);
|
||||
ok(!result && GetLastError()==ERROR_NO_MORE_ITEMS, "expected %i, got %ld\n",
|
||||
ERROR_NO_MORE_ITEMS, GetLastError());
|
||||
|
||||
|
||||
/* check expected versus actual values returned */
|
||||
result = CryptEnumProviderTypes(index, NULL, 0, &provType, NULL, &typeNameSize);
|
||||
result = pCryptEnumProviderTypesA(index, NULL, 0, &provType, NULL, &typeNameSize);
|
||||
ok(result && typeNameSize==cbTypeName, "expected %ld, got %ld\n", cbTypeName, typeNameSize);
|
||||
if (!(typeName = ((LPSTR)LocalAlloc(LMEM_ZEROINIT, typeNameSize))))
|
||||
return;
|
||||
|
||||
typeNameSize = 0xdeadbeef;
|
||||
result = CryptEnumProviderTypes(index, NULL, 0, &provType, typeName, &typeNameSize);
|
||||
result = pCryptEnumProviderTypesA(index, NULL, 0, &provType, typeName, &typeNameSize);
|
||||
ok(result, "expected TRUE, got %ld\n", result);
|
||||
ok(provType==dwProvType, "expected %ld, got %ld\n", dwProvType, provType);
|
||||
if (pszTypeName)
|
||||
@ -426,23 +458,29 @@ static void test_get_default_provider()
|
||||
DWORD result;
|
||||
DWORD notNull = 5;
|
||||
|
||||
if(!pCryptGetDefaultProviderA)
|
||||
{
|
||||
trace("skipping CryptGetDefaultProvider tests\n");
|
||||
return;
|
||||
}
|
||||
|
||||
FindDfltProvRegVals(dwProvType, dwFlags, &pszProvName, &cbProvName);
|
||||
|
||||
/* check pdwReserved for NULL */
|
||||
result = CryptGetDefaultProvider(provType, ¬Null, flags, provName, &provNameSize);
|
||||
result = pCryptGetDefaultProviderA(provType, ¬Null, flags, provName, &provNameSize);
|
||||
ok(!result && GetLastError()==ERROR_INVALID_PARAMETER, "expected %i, got %ld\n",
|
||||
ERROR_INVALID_PARAMETER, GetLastError());
|
||||
|
||||
/* check for invalid flag */
|
||||
flags = 0xdeadbeef;
|
||||
result = CryptGetDefaultProvider(provType, NULL, flags, provName, &provNameSize);
|
||||
result = pCryptGetDefaultProviderA(provType, NULL, flags, provName, &provNameSize);
|
||||
ok(!result && GetLastError()==NTE_BAD_FLAGS, "expected %ld, got %ld\n",
|
||||
NTE_BAD_FLAGS, GetLastError());
|
||||
flags = CRYPT_MACHINE_DEFAULT;
|
||||
|
||||
/* check for invalid prov type */
|
||||
provType = 0xdeadbeef;
|
||||
result = CryptGetDefaultProvider(provType, NULL, flags, provName, &provNameSize);
|
||||
result = pCryptGetDefaultProviderA(provType, NULL, flags, provName, &provNameSize);
|
||||
ok(!result && (GetLastError() == NTE_BAD_PROV_TYPE ||
|
||||
GetLastError() == ERROR_INVALID_PARAMETER),
|
||||
"expected NTE_BAD_PROV_TYPE or ERROR_INVALID_PARAMETER, got %ld/%ld\n",
|
||||
@ -457,21 +495,21 @@ static void test_get_default_provider()
|
||||
if (!(provName = LocalAlloc(LMEM_ZEROINIT, provNameSize)))
|
||||
return;
|
||||
|
||||
result = CryptGetDefaultProvider(provType, NULL, flags, provName, &provNameSize);
|
||||
result = pCryptGetDefaultProviderA(provType, NULL, flags, provName, &provNameSize);
|
||||
ok(!result && GetLastError()==ERROR_MORE_DATA, "expected %i, got %ld\n",
|
||||
ERROR_MORE_DATA, GetLastError());
|
||||
|
||||
LocalFree(provName);
|
||||
|
||||
/* check expected versus actual values returned */
|
||||
result = CryptGetDefaultProvider(provType, NULL, flags, NULL, &provNameSize);
|
||||
result = pCryptGetDefaultProviderA(provType, NULL, flags, NULL, &provNameSize);
|
||||
ok(result && provNameSize==cbProvName, "expected %ld, got %ld\n", cbProvName, provNameSize);
|
||||
provNameSize = cbProvName;
|
||||
|
||||
if (!(provName = LocalAlloc(LMEM_ZEROINIT, provNameSize)))
|
||||
return;
|
||||
|
||||
result = CryptGetDefaultProvider(provType, NULL, flags, provName, &provNameSize);
|
||||
result = pCryptGetDefaultProviderA(provType, NULL, flags, provName, &provNameSize);
|
||||
ok(result && !strcmp(pszProvName, provName), "expected %s, got %s\n", pszProvName, provName);
|
||||
ok(result && provNameSize==cbProvName, "expected %ld, got %ld\n", cbProvName, provNameSize);
|
||||
|
||||
@ -487,24 +525,30 @@ static void test_set_provider_ex()
|
||||
LPSTR pszProvName = NULL;
|
||||
DWORD cbProvName;
|
||||
|
||||
if(!pCryptGetDefaultProviderA || !pCryptSetProviderExA)
|
||||
{
|
||||
trace("skipping CryptSetProviderEx tests\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* check pdwReserved for NULL */
|
||||
result = CryptSetProviderEx(MS_DEF_PROV, PROV_RSA_FULL, ¬Null, CRYPT_MACHINE_DEFAULT);
|
||||
result = pCryptSetProviderExA(MS_DEF_PROV, PROV_RSA_FULL, ¬Null, CRYPT_MACHINE_DEFAULT);
|
||||
ok(!result && GetLastError()==ERROR_INVALID_PARAMETER, "expected %i, got %ld\n",
|
||||
ERROR_INVALID_PARAMETER, GetLastError());
|
||||
|
||||
/* remove the default provider and then set it to MS_DEF_PROV/PROV_RSA_FULL */
|
||||
result = CryptSetProviderEx(MS_DEF_PROV, PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT | CRYPT_DELETE_DEFAULT);
|
||||
result = pCryptSetProviderExA(MS_DEF_PROV, PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT | CRYPT_DELETE_DEFAULT);
|
||||
ok(result, "%ld\n", GetLastError());
|
||||
|
||||
result = CryptSetProviderEx(MS_DEF_PROV, PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT);
|
||||
result = pCryptSetProviderExA(MS_DEF_PROV, PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT);
|
||||
ok(result, "%ld\n", GetLastError());
|
||||
|
||||
/* call CryptGetDefaultProvider to see if they match */
|
||||
result = CryptGetDefaultProvider(PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT, NULL, &cbProvName);
|
||||
result = pCryptGetDefaultProviderA(PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT, NULL, &cbProvName);
|
||||
if (!(pszProvName = LocalAlloc(LMEM_ZEROINIT, cbProvName)))
|
||||
return;
|
||||
|
||||
result = CryptGetDefaultProvider(PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT, pszProvName, &cbProvName);
|
||||
result = pCryptGetDefaultProviderA(PROV_RSA_FULL, NULL, CRYPT_MACHINE_DEFAULT, pszProvName, &cbProvName);
|
||||
ok(result && !strcmp(MS_DEF_PROV, pszProvName), "expected %s, got %s\n", MS_DEF_PROV, pszProvName);
|
||||
ok(result && cbProvName==(strlen(MS_DEF_PROV) + 1), "expected %i, got %ld\n", (strlen(MS_DEF_PROV) + 1), cbProvName);
|
||||
|
||||
@ -513,6 +557,7 @@ static void test_set_provider_ex()
|
||||
|
||||
START_TEST(crypt)
|
||||
{
|
||||
init_function_pointers();
|
||||
init_environment();
|
||||
test_acquire_context();
|
||||
clean_up_environment();
|
||||
|
Loading…
x
Reference in New Issue
Block a user