Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/advapi32/tests/security.c | 211 ++++++++++++++------------------- 1 file changed, 88 insertions(+), 123 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c index 48389bf42b..6d73300c1d 100644 --- a/dlls/advapi32/tests/security.c +++ b/dlls/advapi32/tests/security.c @@ -93,7 +93,6 @@ static DWORD (WINAPI *pGetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_IN static DWORD (WINAPI *pSetNamedSecurityInfoA)(LPSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID, PSID, PACL, PACL); static DWORD (WINAPI *pRtlAdjustPrivilege)(ULONG,BOOLEAN,BOOLEAN,PBOOLEAN); -static BOOL (WINAPI *pCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*); static BOOL (WINAPI *pDuplicateTokenEx)(HANDLE,DWORD,LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
@@ -171,7 +170,6 @@ static void init(void) pConvertSecurityDescriptorToStringSecurityDescriptorA = (void *)GetProcAddress(hmod, "ConvertSecurityDescriptorToStringSecurityDescriptorA" ); pSetFileSecurityA = (void *)GetProcAddress(hmod, "SetFileSecurityA" ); - pCreateWellKnownSid = (void *)GetProcAddress( hmod, "CreateWellKnownSid" ); pGetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "GetNamedSecurityInfoA"); pSetNamedSecurityInfoA = (void *)GetProcAddress(hmod, "SetNamedSecurityInfoA"); pSetEntriesInAclW = (void *)GetProcAddress(hmod, "SetEntriesInAclW"); @@ -2075,28 +2073,22 @@ static void test_CreateWellKnownSid(void) BOOL ret; unsigned int i;
- if (!pCreateWellKnownSid) - { - win_skip("CreateWellKnownSid not available\n"); - return; - } - size = 0; SetLastError(0xdeadbeef); - ret = pCreateWellKnownSid(WinInteractiveSid, NULL, NULL, &size); + ret = CreateWellKnownSid(WinInteractiveSid, NULL, NULL, &size); error = GetLastError(); ok(!ret, "CreateWellKnownSid succeeded\n"); ok(error == ERROR_INSUFFICIENT_BUFFER, "expected ERROR_INSUFFICIENT_BUFFER, got %u\n", error); ok(size, "expected size > 0\n");
SetLastError(0xdeadbeef); - ret = pCreateWellKnownSid(WinInteractiveSid, NULL, NULL, &size); + ret = CreateWellKnownSid(WinInteractiveSid, NULL, NULL, &size); error = GetLastError(); ok(!ret, "CreateWellKnownSid succeeded\n"); ok(error == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %u\n", error);
sid = HeapAlloc(GetProcessHeap(), 0, size); - ret = pCreateWellKnownSid(WinInteractiveSid, NULL, sid, &size); + ret = CreateWellKnownSid(WinInteractiveSid, NULL, sid, &size); ok(ret, "CreateWellKnownSid failed %u\n", GetLastError()); HeapFree(GetProcessHeap(), 0, sid);
@@ -2115,14 +2107,14 @@ static void test_CreateWellKnownSid(void)
/* some SIDs aren't implemented by all Windows versions - detect it */ cb = sizeof(sid_buffer); - if (!pCreateWellKnownSid(i, NULL, sid_buffer, &cb)) + if (!CreateWellKnownSid(i, NULL, sid_buffer, &cb)) { skip("Well known SID %u not implemented\n", i); continue; }
cb = sizeof(sid_buffer); - ok(pCreateWellKnownSid(i, value->without_domain ? NULL : domainsid, sid_buffer, &cb), "Couldn't create well known sid %u\n", i); + ok(CreateWellKnownSid(i, value->without_domain ? NULL : domainsid, sid_buffer, &cb), "Couldn't create well known sid %u\n", i); expect_eq(GetSidLengthRequired(*GetSidSubAuthorityCount(sid_buffer)), cb, DWORD, "%d"); ok(IsValidSid(sid_buffer), "The sid is not valid\n"); ok(ConvertSidToStringSidA(sid_buffer, &str), "Couldn't convert SID to string\n"); @@ -2134,7 +2126,7 @@ static void test_CreateWellKnownSid(void) { char buf2[SECURITY_MAX_SID_SIZE]; cb = sizeof(buf2); - ok(pCreateWellKnownSid(i, domainsid, buf2, &cb), "Couldn't create well known sid %u with optional domain\n", i); + ok(CreateWellKnownSid(i, domainsid, buf2, &cb), "Couldn't create well known sid %u with optional domain\n", i); expect_eq(GetSidLengthRequired(*GetSidSubAuthorityCount(sid_buffer)), cb, DWORD, "%d"); ok(memcmp(buf2, sid_buffer, cb) == 0, "SID create with domain is different than without (%u)\n", i); } @@ -2351,94 +2343,91 @@ static void test_LookupAccountSid(void) } HeapFree(GetProcessHeap(), 0, ptiUser);
- if (pCreateWellKnownSid) + trace("Well Known SIDs:\n"); + for (i = 0; i <= 60; i++) { - trace("Well Known SIDs:\n"); - for (i = 0; i <= 60; i++) + size = SECURITY_MAX_SID_SIZE; + if (CreateWellKnownSid(i, NULL, &max_sid.sid, &size)) { - size = SECURITY_MAX_SID_SIZE; - if (pCreateWellKnownSid(i, NULL, &max_sid.sid, &size)) + if (ConvertSidToStringSidA(&max_sid.sid, &str_sidA)) { - if (ConvertSidToStringSidA(&max_sid.sid, &str_sidA)) - { - acc_sizeA = MAX_PATH; - dom_sizeA = MAX_PATH; - if (LookupAccountSidA(NULL, &max_sid.sid, accountA, &acc_sizeA, domainA, &dom_sizeA, &use)) - trace(" %d: %s %s\%s %d\n", i, str_sidA, domainA, accountA, use); - LocalFree(str_sidA); - } + acc_sizeA = MAX_PATH; + dom_sizeA = MAX_PATH; + if (LookupAccountSidA(NULL, &max_sid.sid, accountA, &acc_sizeA, domainA, &dom_sizeA, &use)) + trace(" %d: %s %s\%s %d\n", i, str_sidA, domainA, accountA, use); + LocalFree(str_sidA); } + } + else + { + if (GetLastError() != ERROR_INVALID_PARAMETER) + trace(" CreateWellKnownSid(%d) failed: %d\n", i, GetLastError()); else - { - if (GetLastError() != ERROR_INVALID_PARAMETER) - trace(" CreateWellKnownSid(%d) failed: %d\n", i, GetLastError()); - else - trace(" %d: not supported\n", i); - } + trace(" %d: not supported\n", i); } + }
- ZeroMemory(&object_attributes, sizeof(object_attributes)); - object_attributes.Length = sizeof(object_attributes); + ZeroMemory(&object_attributes, sizeof(object_attributes)); + object_attributes.Length = sizeof(object_attributes);
- status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle); - ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED, - "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status); + status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle); + ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED, + "LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
- /* try a more restricted access mask if necessary */ - if (status == STATUS_ACCESS_DENIED) { - trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n"); - status = LsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION, &handle); - ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08x\n", status); - } + /* try a more restricted access mask if necessary */ + if (status == STATUS_ACCESS_DENIED) { + trace("LsaOpenPolicy(POLICY_ALL_ACCESS) failed, trying POLICY_VIEW_LOCAL_INFORMATION\n"); + status = LsaOpenPolicy( NULL, &object_attributes, POLICY_VIEW_LOCAL_INFORMATION, &handle); + ok(status == STATUS_SUCCESS, "LsaOpenPolicy(POLICY_VIEW_LOCAL_INFORMATION) returned 0x%08x\n", status); + }
+ if (status == STATUS_SUCCESS) + { + PPOLICY_ACCOUNT_DOMAIN_INFO info; + status = LsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (PVOID*)&info); + ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy() failed, returned 0x%08x\n", status); if (status == STATUS_SUCCESS) { - PPOLICY_ACCOUNT_DOMAIN_INFO info; - status = LsaQueryInformationPolicy(handle, PolicyAccountDomainInformation, (PVOID*)&info); - ok(status == STATUS_SUCCESS, "LsaQueryInformationPolicy() failed, returned 0x%08x\n", status); - if (status == STATUS_SUCCESS) + ok(info->DomainSid!=0, "LsaQueryInformationPolicy(PolicyAccountDomainInformation) missing SID\n"); + if (info->DomainSid) { - ok(info->DomainSid!=0, "LsaQueryInformationPolicy(PolicyAccountDomainInformation) missing SID\n"); - if (info->DomainSid) - { - int count = *GetSidSubAuthorityCount(info->DomainSid); - CopySid(GetSidLengthRequired(count), &max_sid, info->DomainSid); - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_ADMIN; - max_sid.sid.SubAuthorityCount = count + 1; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_GUEST; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ADMINS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_USERS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_GUESTS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_COMPUTERS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CONTROLLERS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CERT_ADMINS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_SCHEMA_ADMINS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ENTERPRISE_ADMINS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_POLICY_ADMINS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = DOMAIN_ALIAS_RID_RAS_SERVERS; - test_sid_str((PSID)&max_sid.sid); - max_sid.sid.SubAuthority[count] = 1000; /* first user account */ - test_sid_str((PSID)&max_sid.sid); - } - - LsaFreeMemory(info); + int count = *GetSidSubAuthorityCount(info->DomainSid); + CopySid(GetSidLengthRequired(count), &max_sid, info->DomainSid); + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_ADMIN; + max_sid.sid.SubAuthorityCount = count + 1; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_USER_RID_GUEST; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ADMINS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_USERS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_GUESTS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_COMPUTERS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CONTROLLERS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_CERT_ADMINS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_SCHEMA_ADMINS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_ENTERPRISE_ADMINS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_GROUP_RID_POLICY_ADMINS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = DOMAIN_ALIAS_RID_RAS_SERVERS; + test_sid_str((PSID)&max_sid.sid); + max_sid.sid.SubAuthority[count] = 1000; /* first user account */ + test_sid_str((PSID)&max_sid.sid); }
- status = LsaClose(handle); - ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status); + LsaFreeMemory(info); } + + status = LsaClose(handle); + ok(status == STATUS_SUCCESS, "LsaClose() failed, returned 0x%08x\n", status); } }
@@ -2488,7 +2477,7 @@ static void check_wellknown_name(const char* name, WELL_KNOWN_SID_TYPE result)
AllocateAndInitializeSid(&ident, 6, SECURITY_NT_NON_UNIQUE, 12, 23, 34, 45, 56, 0, 0, &domainsid); cb = sizeof(wk_sid); - if (!pCreateWellKnownSid(result, domainsid, wk_sid, &cb)) + if (!CreateWellKnownSid(result, domainsid, wk_sid, &cb)) { win_skip("SID %i is not available on the system\n",result); goto cleanup; @@ -2710,12 +2699,6 @@ static void test_LookupAccountName(void) }
/* Well Known names */ - if (!pCreateWellKnownSid) - { - win_skip("CreateWellKnownSid not available\n"); - return; - } - if (PRIMARYLANGID(GetSystemDefaultLangID()) != LANG_ENGLISH) { skip("Non-English locale (skipping well known name creation tests)\n"); @@ -3606,7 +3589,7 @@ static void test_CreateDirectoryA(void) DWORD error; PACL pDacl;
- if (!pGetNamedSecurityInfoA || !pCreateWellKnownSid) + if (!pGetNamedSecurityInfoA) { win_skip("Required functions are not available\n"); return; @@ -3635,7 +3618,7 @@ static void test_CreateDirectoryA(void) sa.lpSecurityDescriptor = pSD; sa.bInheritHandle = TRUE; InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION); - pCreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); + CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); pDacl = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 100); bret = InitializeAcl(pDacl, 100, ACL_REVISION); ok(bret, "Failed to initialize ACL.\n"); @@ -3848,7 +3831,7 @@ static void test_GetNamedSecurityInfoA(void) BYTE flags; NTSTATUS status;
- if (!pSetNamedSecurityInfoA || !pGetNamedSecurityInfoA || !pCreateWellKnownSid) + if (!pSetNamedSecurityInfoA || !pGetNamedSecurityInfoA) { win_skip("Required functions are not available\n"); return; @@ -3941,7 +3924,7 @@ static void test_GetNamedSecurityInfoA(void) pSD = &sd; pDacl = HeapAlloc(GetProcessHeap(), 0, 100); InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION); - pCreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); + CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); bret = InitializeAcl(pDacl, 100, ACL_REVISION); ok(bret, "Failed to initialize ACL.\n"); bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, 0, GENERIC_ALL, user_sid); @@ -4123,7 +4106,7 @@ static void test_GetNamedSecurityInfoA(void)
/* Test querying the ownership of a built-in registry key */ sid_size = sizeof(system_ptr); - pCreateWellKnownSid(WinLocalSystemSid, NULL, system_sid, &sid_size); + CreateWellKnownSid(WinLocalSystemSid, NULL, system_sid, &sid_size); error = pGetNamedSecurityInfoA(software_key, SE_REGISTRY_KEY, OWNER_SECURITY_INFORMATION|GROUP_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, &pSD); @@ -4150,7 +4133,7 @@ static void test_GetNamedSecurityInfoA(void)
/* Test querying the DACL of a built-in registry key */ sid_size = sizeof(users_ptr); - pCreateWellKnownSid(WinBuiltinUsersSid, NULL, users_sid, &sid_size); + CreateWellKnownSid(WinBuiltinUsersSid, NULL, users_sid, &sid_size); error = pGetNamedSecurityInfoA(software_key, SE_REGISTRY_KEY, DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, &pSD); ok(!error, "GetNamedSecurityInfo failed with error %d\n", error); @@ -4368,11 +4351,6 @@ static void test_ConvertSecurityDescriptorToString(void) win_skip("ConvertSecurityDescriptorToStringSecurityDescriptor is not available\n"); return; } - if (!pCreateWellKnownSid) - { - win_skip("CreateWellKnownSid is not available\n"); - return; - }
/* It seems Windows XP adds an extra character to the length of the string for each ACE in an ACL. We * don't replicate this feature so we only test len >= strlen+1. */ @@ -4391,7 +4369,7 @@ static void test_ConvertSecurityDescriptorToString(void) CHECK_RESULT_AND_FREE("");
size = 4096; - pCreateWellKnownSid(WinLocalSid, NULL, sid_buf, &size); + CreateWellKnownSid(WinLocalSid, NULL, sid_buf, &size); SetSecurityDescriptorOwner(&desc, sid_buf, FALSE); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:S-1-2-0"); @@ -4401,7 +4379,7 @@ static void test_ConvertSecurityDescriptorToString(void) CHECK_RESULT_AND_FREE("O:S-1-2-0");
size = sizeof(sid_buf); - pCreateWellKnownSid(WinLocalSystemSid, NULL, sid_buf, &size); + CreateWellKnownSid(WinLocalSystemSid, NULL, sid_buf, &size); SetSecurityDescriptorOwner(&desc, sid_buf, TRUE); ok(pConvertSecurityDescriptorToStringSecurityDescriptorA(&desc, SDDL_REVISION_1, sec_info, &string, &len), "Conversion failed\n"); CHECK_RESULT_AND_FREE("O:SY"); @@ -4766,13 +4744,6 @@ static void test_GetSecurityInfo(void)
LocalFree(pSD);
- if (!pCreateWellKnownSid) - { - win_skip("NULL parameter test would crash on NT4\n"); - CloseHandle(obj); - return; - } - /* If we don't ask for the security descriptor, Windows will still give us the other stuff, leaving us no way to free it. */ ret = GetSecurityInfo(obj, SE_FILE_OBJECT, @@ -4790,7 +4761,7 @@ static void test_GetSecurityInfo(void) pSD = &sd; pDacl = (PACL)&dacl; InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION); - pCreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); + CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, admin_sid, &sid_size); bret = InitializeAcl(pDacl, sizeof(dacl), ACL_REVISION); ok(bret, "Failed to initialize ACL.\n"); bret = pAddAccessAllowedAceEx(pDacl, ACL_REVISION, 0, GENERIC_ALL, user_sid); @@ -4844,7 +4815,7 @@ static void test_GetSecurityInfo(void) return; } sid_size = sizeof(domain_users_ptr); - pCreateWellKnownSid(WinAccountDomainUsersSid, domain_sid, domain_users_sid, &sid_size); + CreateWellKnownSid(WinAccountDomainUsersSid, domain_sid, domain_users_sid, &sid_size); FreeSid(domain_sid);
/* Test querying the ownership of a process */ @@ -7502,12 +7473,6 @@ static void test_EqualDomainSid(void) return; }
- if (!pCreateWellKnownSid) - { - win_skip("CreateWellKnownSid not available\n"); - return; - } - ret = AllocateAndInitializeSid(&ident, 6, SECURITY_NT_NON_UNIQUE, 12, 23, 34, 45, 56, 0, 0, &domainsid); ok(ret, "AllocateAndInitializeSid error %u\n", GetLastError());
@@ -7526,7 +7491,7 @@ static void test_EqualDomainSid(void) SID *pisid = sid;
size = sizeof(sid_buffer); - if (!pCreateWellKnownSid(i, NULL, sid, &size)) + if (!CreateWellKnownSid(i, NULL, sid, &size)) { trace("Well known SID %u not supported\n", i); continue; @@ -7548,7 +7513,7 @@ static void test_EqualDomainSid(void) ok(equal == 0, "%u: got %d\n", i, equal);
size = sizeof(sid_buffer2); - ret = pCreateWellKnownSid(i, well_known_sid_values[i].without_domain ? NULL : domainsid, sid2, &size); + ret = CreateWellKnownSid(i, well_known_sid_values[i].without_domain ? NULL : domainsid, sid2, &size); ok(ret, "%u: CreateWellKnownSid error %u\n", i, GetLastError());
equal = 0xdeadbeef;
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/advapi32/tests/crypt.c | 318 +++++++++++++++--------------------- 1 file changed, 133 insertions(+), 185 deletions(-)
diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c index adc9c1612f..47437f3b5c 100644 --- a/dlls/advapi32/tests/crypt.c +++ b/dlls/advapi32/tests/crypt.c @@ -34,35 +34,14 @@ static const char szKeySet[] = "wine_test_keyset"; static const char szBadKeySet[] = "wine_test_bad_keyset"; #define NON_DEF_PROV_TYPE 999
-static BOOL (WINAPI *pCryptAcquireContextA)(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD); 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 *pCryptReleaseContext)(HCRYPTPROV, DWORD); static BOOL (WINAPI *pCryptSetProviderExA)(LPCSTR, DWORD, DWORD*, DWORD); -static BOOL (WINAPI *pCryptCreateHash)(HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH*); -static BOOL (WINAPI *pCryptDestroyHash)(HCRYPTHASH); static BOOL (WINAPI *pCryptGenRandom)(HCRYPTPROV, DWORD, BYTE*); -static BOOL (WINAPI *pCryptContextAddRef)(HCRYPTPROV, DWORD*, DWORD dwFlags); -static BOOL (WINAPI *pCryptGenKey)(HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY*); -static BOOL (WINAPI *pCryptDestroyKey)(HCRYPTKEY); -static BOOL (WINAPI *pCryptDecrypt)(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE*, DWORD*); -static BOOL (WINAPI *pCryptDeriveKey)(HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY*); static BOOL (WINAPI *pCryptDuplicateHash)(HCRYPTHASH, DWORD*, DWORD, HCRYPTHASH*); -static BOOL (WINAPI *pCryptDuplicateKey)(HCRYPTKEY, DWORD*, DWORD, HCRYPTKEY*); -static BOOL (WINAPI *pCryptEncrypt)(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE*, DWORD*, DWORD); -static BOOL (WINAPI *pCryptExportKey)(HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, BYTE*, DWORD*); -static BOOL (WINAPI *pCryptGetHashParam)(HCRYPTHASH, DWORD, BYTE*, DWORD*, DWORD); -static BOOL (WINAPI *pCryptGetKeyParam)(HCRYPTKEY, DWORD, BYTE*, DWORD*, DWORD); -static BOOL (WINAPI *pCryptGetProvParam)(HCRYPTPROV, DWORD, BYTE*, DWORD*, DWORD); -static BOOL (WINAPI *pCryptGetUserKey)(HCRYPTPROV, DWORD, HCRYPTKEY*); -static BOOL (WINAPI *pCryptHashData)(HCRYPTHASH, BYTE*, DWORD, DWORD); static BOOL (WINAPI *pCryptHashSessionKey)(HCRYPTHASH, HCRYPTKEY, DWORD); -static BOOL (WINAPI *pCryptImportKey)(HCRYPTPROV, BYTE*, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY*); static BOOL (WINAPI *pCryptSignHashW)(HCRYPTHASH, DWORD, LPCWSTR, DWORD, BYTE*, DWORD*); -static BOOL (WINAPI *pCryptSetHashParam)(HCRYPTKEY, DWORD, BYTE*, DWORD); -static BOOL (WINAPI *pCryptSetKeyParam)(HCRYPTKEY, DWORD, BYTE*, DWORD); -static BOOL (WINAPI *pCryptSetProvParam)(HCRYPTPROV, DWORD, BYTE*, DWORD); static BOOL (WINAPI *pCryptVerifySignatureW)(HCRYPTHASH, BYTE*, DWORD, HCRYPTKEY, LPCWSTR, DWORD); static BOOLEAN (WINAPI *pSystemFunction036)(PVOID, ULONG);
@@ -70,89 +49,68 @@ static void init_function_pointers(void) { HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll");
- pCryptAcquireContextA = (void*)GetProcAddress(hadvapi32, "CryptAcquireContextA"); pCryptEnumProviderTypesA = (void*)GetProcAddress(hadvapi32, "CryptEnumProviderTypesA"); pCryptEnumProvidersA = (void*)GetProcAddress(hadvapi32, "CryptEnumProvidersA"); pCryptGetDefaultProviderA = (void*)GetProcAddress(hadvapi32, "CryptGetDefaultProviderA"); - pCryptReleaseContext = (void*)GetProcAddress(hadvapi32, "CryptReleaseContext"); pCryptSetProviderExA = (void*)GetProcAddress(hadvapi32, "CryptSetProviderExA"); - pCryptCreateHash = (void*)GetProcAddress(hadvapi32, "CryptCreateHash"); - pCryptDestroyHash = (void*)GetProcAddress(hadvapi32, "CryptDestroyHash"); pCryptGenRandom = (void*)GetProcAddress(hadvapi32, "CryptGenRandom"); - pCryptContextAddRef = (void*)GetProcAddress(hadvapi32, "CryptContextAddRef"); - pCryptGenKey = (void*)GetProcAddress(hadvapi32, "CryptGenKey"); - pCryptDestroyKey = (void*)GetProcAddress(hadvapi32, "CryptDestroyKey"); - pCryptDecrypt = (void*)GetProcAddress(hadvapi32, "CryptDecrypt"); - pCryptDeriveKey = (void*)GetProcAddress(hadvapi32, "CryptDeriveKey"); pCryptDuplicateHash = (void*)GetProcAddress(hadvapi32, "CryptDuplicateHash"); - pCryptDuplicateKey = (void*)GetProcAddress(hadvapi32, "CryptDuplicateKey"); - pCryptEncrypt = (void*)GetProcAddress(hadvapi32, "CryptEncrypt"); - pCryptExportKey = (void*)GetProcAddress(hadvapi32, "CryptExportKey"); - pCryptGetHashParam = (void*)GetProcAddress(hadvapi32, "CryptGetHashParam"); - pCryptGetKeyParam = (void*)GetProcAddress(hadvapi32, "CryptGetKeyParam"); - pCryptGetProvParam = (void*)GetProcAddress(hadvapi32, "CryptGetProvParam"); - pCryptGetUserKey = (void*)GetProcAddress(hadvapi32, "CryptGetUserKey"); - pCryptHashData = (void*)GetProcAddress(hadvapi32, "CryptHashData"); pCryptHashSessionKey = (void*)GetProcAddress(hadvapi32, "CryptHashSessionKey"); - pCryptImportKey = (void*)GetProcAddress(hadvapi32, "CryptImportKey"); pCryptSignHashW = (void*)GetProcAddress(hadvapi32, "CryptSignHashW"); - pCryptSetHashParam = (void*)GetProcAddress(hadvapi32, "CryptSetHashParam"); - pCryptSetKeyParam = (void*)GetProcAddress(hadvapi32, "CryptSetKeyParam"); - pCryptSetProvParam = (void*)GetProcAddress(hadvapi32, "CryptSetProvParam"); pCryptVerifySignatureW = (void*)GetProcAddress(hadvapi32, "CryptVerifySignatureW"); pSystemFunction036 = (void*)GetProcAddress(hadvapi32, "SystemFunction036"); }
static void init_environment(void) { - HCRYPTPROV hProv; - - /* Ensure that container "wine_test_keyset" does exist */ - if (!pCryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) - { - pCryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_NEWKEYSET); - } - pCryptReleaseContext(hProv, 0); + HCRYPTPROV hProv;
- /* Ensure that container "wine_test_keyset" does exist in default PROV_RSA_FULL type provider */ - if (!pCryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, 0)) - { - pCryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET); - } - pCryptReleaseContext(hProv, 0); + /* Ensure that container "wine_test_keyset" does exist */ + if (!CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) + { + CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_NEWKEYSET); + } + CryptReleaseContext(hProv, 0);
- /* Ensure that container "wine_test_bad_keyset" does not exist. */ - if (pCryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) - { - pCryptReleaseContext(hProv, 0); - pCryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET); - } + /* Ensure that container "wine_test_keyset" does exist in default PROV_RSA_FULL type provider */ + if (!CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, 0)) + { + CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET); + } + CryptReleaseContext(hProv, 0); + + /* Ensure that container "wine_test_bad_keyset" does not exist. */ + if (CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) + { + CryptReleaseContext(hProv, 0); + CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET); + } }
static void clean_up_environment(void) { - HCRYPTPROV hProv; + HCRYPTPROV hProv;
- /* Remove container "wine_test_keyset" */ - if (pCryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) - { - pCryptReleaseContext(hProv, 0); - pCryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET); - } + /* Remove container "wine_test_keyset" */ + if (CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) + { + CryptReleaseContext(hProv, 0); + CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET); + }
- /* Remove container "wine_test_keyset" from default PROV_RSA_FULL type provider */ - if (pCryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, 0)) - { - pCryptReleaseContext(hProv, 0); - pCryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, CRYPT_DELETEKEYSET); - } + /* Remove container "wine_test_keyset" from default PROV_RSA_FULL type provider */ + if (CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, 0)) + { + CryptReleaseContext(hProv, 0); + CryptAcquireContextA(&hProv, szKeySet, NULL, PROV_RSA_FULL, CRYPT_DELETEKEYSET); + }
- /* Remove container "wine_test_bad_keyset" */ - if (pCryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) - { - pCryptReleaseContext(hProv, 0); - pCryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET); - } + /* Remove container "wine_test_bad_keyset" */ + if (CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, 0)) + { + CryptReleaseContext(hProv, 0); + CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_DELETEKEYSET); + } }
static void test_acquire_context(void) @@ -165,32 +123,35 @@ static void test_acquire_context(void) * The order of the error tests seems to match Windows XP's rsaenh.dll CSP, * but since this is likely to change between CSP versions, we don't check * this. Please don't change the order of tests. */ - result = pCryptAcquireContextA(&hProv, NULL, NULL, 0, 0); + result = CryptAcquireContextA(&hProv, NULL, NULL, 0, 0); ok(!result && GetLastError()==NTE_BAD_PROV_TYPE, "%d\n", GetLastError()); - result = pCryptAcquireContextA(&hProv, NULL, NULL, 1000, 0); + result = CryptAcquireContextA(&hProv, NULL, NULL, 1000, 0); ok(!result && GetLastError()==NTE_BAD_PROV_TYPE, "%d\n", GetLastError());
- result = pCryptAcquireContextA(&hProv, NULL, NULL, NON_DEF_PROV_TYPE, 0); + result = CryptAcquireContextA(&hProv, NULL, NULL, NON_DEF_PROV_TYPE, 0); ok(!result && GetLastError()==NTE_PROV_TYPE_NOT_DEF, "%d\n", GetLastError()); - result = pCryptAcquireContextA(&hProv, szKeySet, szNonExistentProv, PROV_RSA_FULL, 0); + result = CryptAcquireContextA(&hProv, szKeySet, szNonExistentProv, PROV_RSA_FULL, 0); ok(!result && GetLastError()==NTE_KEYSET_NOT_DEF, "%d\n", GetLastError());
- result = pCryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, NON_DEF_PROV_TYPE, 0); + result = CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, NON_DEF_PROV_TYPE, 0); ok(!result && GetLastError()==NTE_PROV_TYPE_NO_MATCH, "%d\n", GetLastError()); + +if (0) +{ /* This test fails under Win2k SP4: - result = TRUE, GetLastError() == ERROR_INVALID_PARAMETER + result = TRUE, GetLastError() == ERROR_INVALID_PARAMETER */ SetLastError(0xdeadbeef); - result = pCryptAcquireContextA(NULL, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0); + result = CryptAcquireContextA(NULL, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0); ok(!result && GetLastError()==ERROR_INVALID_PARAMETER, "%d/%d\n", result, GetLastError()); - */ +} /* Last not least, try to really acquire a context. */ hProv = 0; SetLastError(0xdeadbeef); - result = pCryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0); + result = CryptAcquireContextA(&hProv, szKeySet, szRsaBaseProv, PROV_RSA_FULL, 0); GLE = GetLastError(); ok(result && (GLE == ERROR_ENVVAR_NOT_FOUND || GLE == ERROR_SUCCESS || @@ -199,12 +160,12 @@ static void test_acquire_context(void) GLE == ERROR_NOT_LOGGED_ON), "%d/%d\n", result, GLE);
if (hProv) - pCryptReleaseContext(hProv, 0); + CryptReleaseContext(hProv, 0);
/* Try again, witch an empty ("\0") szProvider parameter */ hProv = 0; SetLastError(0xdeadbeef); - result = pCryptAcquireContextA(&hProv, szKeySet, "", PROV_RSA_FULL, 0); + result = CryptAcquireContextA(&hProv, szKeySet, "", PROV_RSA_FULL, 0); GLE = GetLastError(); ok(result && (GLE == ERROR_ENVVAR_NOT_FOUND || GLE == ERROR_SUCCESS || @@ -213,7 +174,7 @@ static void test_acquire_context(void) GLE == ERROR_NOT_LOGGED_ON), "%d/%d\n", result, GetLastError());
if (hProv) - pCryptReleaseContext(hProv, 0); + CryptReleaseContext(hProv, 0); }
static void test_incorrect_api_usage(void) @@ -235,113 +196,109 @@ static void test_incorrect_api_usage(void) * robust here and returns an ERROR_INVALID_PARAMETER code. */
- result = pCryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, + result = CryptAcquireContextA(&hProv, szBadKeySet, szRsaBaseProv, PROV_RSA_FULL, CRYPT_NEWKEYSET); ok (result, "%08x\n", GetLastError()); if (!result) return;
- result = pCryptCreateHash(hProv, CALG_SHA, 0, 0, &hHash); + result = CryptCreateHash(hProv, CALG_SHA, 0, 0, &hHash); ok (result, "%d\n", GetLastError()); if (!result) return; - pCryptDestroyHash(hHash); + CryptDestroyHash(hHash);
- result = pCryptCreateHash(0, CALG_SHA, 0, 0, &hHash); + result = CryptCreateHash(0, CALG_SHA, 0, 0, &hHash); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptGenKey(0, CALG_RC4, 0, &hKey); + result = CryptGenKey(0, CALG_RC4, 0, &hKey); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptGenKey(hProv, CALG_RC4, 0, &hKey); + result = CryptGenKey(hProv, CALG_RC4, 0, &hKey); ok (result, "%d\n", GetLastError()); if (!result) return;
- result = pCryptDestroyKey(hKey); + result = CryptDestroyKey(hKey); ok (result, "%d\n", GetLastError());
- result = pCryptGenKey(hProv, CALG_RC4, 0, &hKey2); + result = CryptGenKey(hProv, CALG_RC4, 0, &hKey2); ok (result, "%d\n", GetLastError()); if (!result) return;
- result = pCryptDestroyKey(hKey2); + result = CryptDestroyKey(hKey2); ok (result, "%d\n", GetLastError());
dwTemp = CRYPT_MODE_ECB; - result = pCryptSetKeyParam(hKey2, KP_MODE, (BYTE*)&dwTemp, sizeof(DWORD)); + result = CryptSetKeyParam(hKey2, KP_MODE, (BYTE*)&dwTemp, sizeof(DWORD)); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
hProv2 = 0xdeadbeef; - result = pCryptAcquireContextA(&hProv2, szBadKeySet, NULL, PROV_RSA_FULL, + result = CryptAcquireContextA(&hProv2, szBadKeySet, NULL, PROV_RSA_FULL, CRYPT_DELETEKEYSET); ok (result, "%d\n", GetLastError()); ok (hProv2 == 0, "%ld\n", hProv2); if (!result) return;
- result = pCryptReleaseContext(hProv, 0); + result = CryptReleaseContext(hProv, 0); ok (result, "%d\n", GetLastError()); if (!result) return;
- result = pCryptReleaseContext(hProv, 0); + result = CryptReleaseContext(hProv, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
result = pCryptGenRandom(hProv, 1, &temp); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
-#ifdef CRASHES_ON_NT40 - result = pCryptContextAddRef(hProv, NULL, 0); + result = CryptContextAddRef(hProv, NULL, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); -#endif
- result = pCryptCreateHash(hProv, CALG_SHA, 0, 0, &hHash2); + result = CryptCreateHash(hProv, CALG_SHA, 0, 0, &hHash2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
dwLen = 1; - result = pCryptDecrypt(hKey, 0, TRUE, 0, &temp, &dwLen); + result = CryptDecrypt(hKey, 0, TRUE, 0, &temp, &dwLen); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
dwLen = 1; - result = pCryptEncrypt(hKey, 0, TRUE, 0, &temp, &dwLen, 1); + result = CryptEncrypt(hKey, 0, TRUE, 0, &temp, &dwLen, 1); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptDeriveKey(hProv, CALG_RC4, hHash, 0, &hKey2); + result = CryptDeriveKey(hProv, CALG_RC4, hHash, 0, &hKey2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
-#ifdef CRASHES_ON_NT40 result = pCryptDuplicateHash(hHash, NULL, 0, &hHash2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptDuplicateKey(hKey, NULL, 0, &hKey2); + result = CryptDuplicateKey(hKey, NULL, 0, &hKey2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); -#endif
dwLen = 1; - result = pCryptExportKey(hKey, 0, 0, 0, &temp, &dwLen); + result = CryptExportKey(hKey, 0, 0, 0, &temp, &dwLen); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptGenKey(hProv, CALG_RC4, 0, &hKey2); + result = CryptGenKey(hProv, CALG_RC4, 0, &hKey2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
dwLen = 1; - result = pCryptGetHashParam(hHash, 0, &temp, &dwLen, 0); + result = CryptGetHashParam(hHash, 0, &temp, &dwLen, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
dwLen = 1; - result = pCryptGetKeyParam(hKey, 0, &temp, &dwLen, 0); + result = CryptGetKeyParam(hKey, 0, &temp, &dwLen, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
dwLen = 1; - result = pCryptGetProvParam(hProv, 0, &temp, &dwLen, 0); + result = CryptGetProvParam(hProv, 0, &temp, &dwLen, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptGetUserKey(hProv, 0, &hKey2); + result = CryptGetUserKey(hProv, 0, &hKey2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptHashData(hHash, &temp, 1, 0); + result = CryptHashData(hHash, &temp, 1, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
result = pCryptHashSessionKey(hHash, hKey, 0); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptImportKey(hProv, &temp, 1, 0, 0, &hKey2); + result = CryptImportKey(hProv, &temp, 1, 0, 0, &hKey2); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
if (pCryptSignHashW) @@ -354,13 +311,13 @@ static void test_incorrect_api_usage(void) else win_skip("CryptSignHashW is not available\n");
- result = pCryptSetKeyParam(hKey, 0, &temp, 1); + result = CryptSetKeyParam(hKey, 0, &temp, 1); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptSetHashParam(hHash, 0, &temp, 1); + result = CryptSetHashParam(hHash, 0, &temp, 1); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptSetProvParam(hProv, 0, &temp, 1); + result = CryptSetProvParam(hProv, 0, &temp, 1); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
if (pCryptVerifySignatureW) @@ -372,10 +329,10 @@ static void test_incorrect_api_usage(void) else win_skip("CryptVerifySignatureW is not available\n");
- result = pCryptDestroyHash(hHash); + result = CryptDestroyHash(hHash); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
- result = pCryptDestroyKey(hKey); + result = CryptDestroyKey(hKey); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); }
@@ -428,14 +385,14 @@ static void test_verify_sig(void) } ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER, "Expected ERROR_INVALID_PARAMETER, got %08x\n", GetLastError()); - ret = pCryptAcquireContextA(&prov, szKeySet, NULL, PROV_RSA_FULL, + ret = CryptAcquireContextA(&prov, szKeySet, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET); if (!ret && GetLastError() == NTE_EXISTS) - ret = pCryptAcquireContextA(&prov, szKeySet, NULL, PROV_RSA_FULL, 0); + ret = CryptAcquireContextA(&prov, szKeySet, NULL, PROV_RSA_FULL, 0); ok(ret, "CryptAcquireContextA failed: %08x\n", GetLastError()); - ret = pCryptImportKey(prov, (LPBYTE)privKey, sizeof(privKey), 0, 0, &key); + ret = CryptImportKey(prov, (LPBYTE)privKey, sizeof(privKey), 0, 0, &key); ok(ret, "CryptImportKey failed: %08x\n", GetLastError()); - ret = pCryptCreateHash(prov, CALG_MD5, 0, 0, &hash); + ret = CryptCreateHash(prov, CALG_MD5, 0, 0, &hash); ok(ret, "CryptCreateHash failed: %08x\n", GetLastError()); SetLastError(0xdeadbeef); ret = pCryptVerifySignatureW(hash, NULL, 0, 0, NULL, 0); @@ -467,9 +424,9 @@ static void test_verify_sig(void) (GetLastError() == NTE_BAD_SIGNATURE || broken(GetLastError() == NTE_BAD_HASH_STATE /* older NT4 */)), "Expected NTE_BAD_SIGNATURE, got %08x\n", GetLastError()); - pCryptDestroyKey(key); - pCryptDestroyHash(hash); - pCryptReleaseContext(prov, 0); + CryptDestroyKey(key); + CryptDestroyHash(hash); + CryptReleaseContext(prov, 0); }
static BOOL FindProvRegVals(DWORD dwIndex, DWORD *pdwProvType, LPSTR *pszProvName, @@ -978,10 +935,10 @@ static void test_machine_guid(void) ok(r == ERROR_FILE_NOT_FOUND, "expected ERROR_FILE_NOT_FOUND, got %d\n", r); /* Create and release a provider */ - ret = pCryptAcquireContextA(&hCryptProv, szKeySet, NULL, PROV_RSA_FULL, 0); + ret = CryptAcquireContextA(&hCryptProv, szKeySet, NULL, PROV_RSA_FULL, 0); ok(ret || broken(!ret && GetLastError() == NTE_KEYSET_ENTRY_BAD /* NT4 */), "CryptAcquireContextA failed: %08x\n", GetLastError()); - pCryptReleaseContext(hCryptProv, 0); + CryptReleaseContext(hCryptProv, 0);
if (restoreGuid) RegSetValueExA(key, "MachineGuid", 0, REG_SZ, (const BYTE *)originalGuid, @@ -1009,7 +966,7 @@ static void test_rc2_keylen(void) BOOL ret;
SetLastError(0xdeadbeef); - ret = pCryptAcquireContextA(&provider, NULL, NULL, + ret = CryptAcquireContextA(&provider, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); ok(ret, "CryptAcquireContext error %u\n", GetLastError()); if (ret) @@ -1023,21 +980,20 @@ static void test_rc2_keylen(void)
/* Importing a 16-byte key works with the default provider. */ SetLastError(0xdeadbeef); - ret = pCryptImportKey(provider, (BYTE*)&key_blob, - sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, - 0, CRYPT_IPSEC_HMAC_KEY, &hkey); + ret = CryptImportKey(provider, (BYTE *)&key_blob, sizeof(BLOBHEADER) + sizeof(DWORD) + key_blob.key_size, + 0, CRYPT_IPSEC_HMAC_KEY, &hkey); /* CRYPT_IPSEC_HMAC_KEY is not supported on W2K and lower */ ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError());
if (ret) - pCryptDestroyKey(hkey); - pCryptReleaseContext(provider, 0); + CryptDestroyKey(hkey); + CryptReleaseContext(provider, 0); }
SetLastError(0xdeadbeef); - ret = pCryptAcquireContextA(&provider, NULL, MS_DEF_PROV_A, + ret = CryptAcquireContextA(&provider, NULL, MS_DEF_PROV_A, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); ok(ret, "CryptAcquireContext error %08x\n", GetLastError());
@@ -1045,9 +1001,8 @@ static void test_rc2_keylen(void) { /* Importing a 16-byte key doesn't work with the base provider.. */ SetLastError(0xdeadbeef); - ret = pCryptImportKey(provider, (BYTE*)&key_blob, - sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, - 0, 0, &hkey); + ret = CryptImportKey(provider, (BYTE *)&key_blob, sizeof(BLOBHEADER) + sizeof(DWORD) + key_blob.key_size, + 0, 0, &hkey); ok(!ret && (GetLastError() == NTE_BAD_DATA || GetLastError() == NTE_BAD_LEN || /* Win7 */ GetLastError() == NTE_BAD_TYPE || /* W2K */ @@ -1056,37 +1011,34 @@ static void test_rc2_keylen(void) /* but importing an 56-bit (7-byte) key does.. */ key_blob.key_size = 7; SetLastError(0xdeadbeef); - ret = pCryptImportKey(provider, (BYTE*)&key_blob, - sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, - 0, 0, &hkey); + ret = CryptImportKey(provider, (BYTE *)&key_blob, sizeof(BLOBHEADER) + sizeof(DWORD) + key_blob.key_size, + 0, 0, &hkey); ok(ret || broken(!ret && GetLastError() == NTE_BAD_TYPE) || /* W2K */ broken(!ret && GetLastError() == NTE_PERM), /* Win9x, WinMe and NT4 */ "CryptAcquireContext error %08x\n", GetLastError()); if (ret) - pCryptDestroyKey(hkey); + CryptDestroyKey(hkey); /* as does importing a 16-byte key with the base provider when * CRYPT_IPSEC_HMAC_KEY is specified. */ key_blob.key_size = sizeof(key); SetLastError(0xdeadbeef); - ret = pCryptImportKey(provider, (BYTE*)&key_blob, - sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, - 0, CRYPT_IPSEC_HMAC_KEY, &hkey); + ret = CryptImportKey(provider, (BYTE *)&key_blob, sizeof(BLOBHEADER) + sizeof(DWORD) + key_blob.key_size, + 0, CRYPT_IPSEC_HMAC_KEY, &hkey); /* CRYPT_IPSEC_HMAC_KEY is not supported on W2K and lower */ ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError()); if (ret) - pCryptDestroyKey(hkey); + CryptDestroyKey(hkey);
- pCryptReleaseContext(provider, 0); + CryptReleaseContext(provider, 0); }
key_blob.key_size = sizeof(key); SetLastError(0xdeadbeef); - ret = pCryptAcquireContextA(&provider, NULL, NULL, - PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); + ret = CryptAcquireContextA(&provider, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); ok(ret, "CryptAcquireContext error %08x\n", GetLastError());
if (ret) @@ -1095,30 +1047,28 @@ static void test_rc2_keylen(void) * CRYPT_IPSEC_HMAC_KEY is specified. */ SetLastError(0xdeadbeef); - ret = pCryptImportKey(provider, (BYTE*)&key_blob, - sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, - 0, CRYPT_IPSEC_HMAC_KEY, &hkey); + ret = CryptImportKey(provider, (BYTE *)&key_blob, sizeof(BLOBHEADER) + sizeof(DWORD) + key_blob.key_size, + 0, CRYPT_IPSEC_HMAC_KEY, &hkey); ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError()); if (ret) - pCryptDestroyKey(hkey); + CryptDestroyKey(hkey);
/* There is no apparent limit to the size of the input key when * CRYPT_IPSEC_HMAC_KEY is specified. */ key_blob.key_size = sizeof(key_blob.key_data); SetLastError(0xdeadbeef); - ret = pCryptImportKey(provider, (BYTE*)&key_blob, - sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, - 0, CRYPT_IPSEC_HMAC_KEY, &hkey); + ret = CryptImportKey(provider, (BYTE *)&key_blob, sizeof(BLOBHEADER) + sizeof(DWORD) + key_blob.key_size, + 0, CRYPT_IPSEC_HMAC_KEY, &hkey); ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError()); if (ret) - pCryptDestroyKey(hkey); + CryptDestroyKey(hkey);
- pCryptReleaseContext(provider, 0); + CryptReleaseContext(provider, 0); } }
@@ -1188,21 +1138,19 @@ static void test_container_sd(void) START_TEST(crypt) { init_function_pointers(); - if (pCryptAcquireContextA && pCryptReleaseContext) - { - test_rc2_keylen(); - init_environment(); - test_acquire_context(); - test_incorrect_api_usage(); - test_verify_sig(); - test_machine_guid(); - test_container_sd(); - clean_up_environment(); - } - - test_enum_providers(); - test_enum_provider_types(); - test_get_default_provider(); - test_set_provider_ex(); - test_SystemFunction036(); + + test_rc2_keylen(); + init_environment(); + test_acquire_context(); + test_incorrect_api_usage(); + test_verify_sig(); + test_machine_guid(); + test_container_sd(); + clean_up_environment(); + + test_enum_providers(); + test_enum_provider_types(); + test_get_default_provider(); + test_set_provider_ex(); + test_SystemFunction036(); }