Mounir IDRASSI : rsaenh:
Use the correct registry key in RSAENH_CPAcquireContext.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 8 06:59:35 CDT 2007
Module: wine
Branch: master
Commit: 56a1326a8b65f30e69835a1359a3ad0f59fae51b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=56a1326a8b65f30e69835a1359a3ad0f59fae51b
Author: Mounir IDRASSI <mounir.idrassi at idrix.fr>
Date: Mon May 7 23:37:30 2007 +0200
rsaenh: Use the correct registry key in RSAENH_CPAcquireContext.
---
dlls/rsaenh/rsaenh.c | 7 ++++++-
dlls/rsaenh/tests/rsaenh.c | 20 ++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index 66fa9f5..cfa230c 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -1476,7 +1476,12 @@ BOOL WINAPI RSAENH_CPAcquireContext(HCRYPTPROV *phProv, LPSTR pszContainer,
SetLastError(NTE_BAD_KEYSET_PARAM);
return FALSE;
} else {
- if (!RegDeleteKeyA(HKEY_CURRENT_USER, szRegKey)) {
+ HKEY hRootKey;
+ if (dwFlags & CRYPT_MACHINE_KEYSET)
+ hRootKey = HKEY_LOCAL_MACHINE;
+ else
+ hRootKey = HKEY_CURRENT_USER;
+ if (!RegDeleteKeyA(hRootKey, szRegKey)) {
SetLastError(ERROR_SUCCESS);
return TRUE;
} else {
diff --git a/dlls/rsaenh/tests/rsaenh.c b/dlls/rsaenh/tests/rsaenh.c
index 57cf706..b51a0a5 100644
--- a/dlls/rsaenh/tests/rsaenh.c
+++ b/dlls/rsaenh/tests/rsaenh.c
@@ -1623,6 +1623,26 @@ static void test_null_provider(void)
CryptAcquireContext(&prov, szContainer, NULL, PROV_RSA_FULL,
CRYPT_DELETEKEYSET);
+ /* test the machine key set */
+ CryptAcquireContext(&prov, szContainer, NULL, PROV_RSA_FULL,
+ CRYPT_DELETEKEYSET|CRYPT_MACHINE_KEYSET);
+ result = CryptAcquireContext(&prov, szContainer, NULL, PROV_RSA_FULL,
+ CRYPT_NEWKEYSET|CRYPT_MACHINE_KEYSET);
+ ok(result, "CryptAcquireContext with CRYPT_MACHINE_KEYSET failed: %08x\n", GetLastError());
+ CryptReleaseContext(prov, 0);
+ result = CryptAcquireContext(&prov, szContainer, NULL, PROV_RSA_FULL,
+ CRYPT_MACHINE_KEYSET);
+ ok(result, "CryptAcquireContext with CRYPT_MACHINE_KEYSET failed: %08x\n", GetLastError());
+ CryptReleaseContext(prov,0);
+ result = CryptAcquireContext(&prov, szContainer, NULL, PROV_RSA_FULL,
+ CRYPT_DELETEKEYSET|CRYPT_MACHINE_KEYSET);
+ ok(result, "CryptAcquireContext with CRYPT_DELETEKEYSET|CRYPT_MACHINE_KEYSET failed: %08x\n",
+ GetLastError());
+ result = CryptAcquireContext(&prov, szContainer, NULL, PROV_RSA_FULL,
+ CRYPT_MACHINE_KEYSET);
+ ok(!result && GetLastError() == NTE_BAD_KEYSET ,
+ "Expected NTE_BAD_KEYSET, got %08x\n", GetLastError());
+
}
START_TEST(rsaenh)
More information about the wine-cvs
mailing list