Module: wine Branch: master Commit: a48aae26e60b76695d0661ac8fa9001712f5a743 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a48aae26e60b76695d0661ac8f...
Author: Juan Lang juan.lang@gmail.com Date: Wed Oct 21 13:42:37 2009 -0700
rsaenh: Fail if CRYPT_IPSEC_HMAC_KEY is passed to CryptImportKey.
---
dlls/advapi32/tests/crypt.c | 5 ++++- dlls/rsaenh/rsaenh.c | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c index 022d3e6..35ce974 100644 --- a/dlls/advapi32/tests/crypt.c +++ b/dlls/advapi32/tests/crypt.c @@ -949,7 +949,7 @@ static void test_rc2_keylen(void) } key_blob;
HCRYPTPROV provider; - HCRYPTKEY hkey; + HCRYPTKEY hkey = 0; BOOL ret;
SetLastError(0xdeadbeef); @@ -970,6 +970,7 @@ static void test_rc2_keylen(void) 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 */ + todo_wine ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError()); @@ -1007,6 +1008,7 @@ static void test_rc2_keylen(void) 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 */ + todo_wine ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError()); @@ -1027,6 +1029,7 @@ static void test_rc2_keylen(void) ret = pCryptImportKey(provider, (BYTE*)&key_blob, sizeof(BLOBHEADER)+sizeof(DWORD)+key_blob.key_size, 0, CRYPT_IPSEC_HMAC_KEY, &hkey); + todo_wine ok(ret || broken(!ret && GetLastError() == NTE_BAD_FLAGS), "CryptImportKey error %08x\n", GetLastError()); diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c index 1b23391..a6c852a 100644 --- a/dlls/rsaenh/rsaenh.c +++ b/dlls/rsaenh/rsaenh.c @@ -3011,6 +3011,12 @@ BOOL WINAPI RSAENH_CPImportKey(HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDat TRACE("(hProv=%08lx, pbData=%p, dwDataLen=%d, hPubKey=%08lx, dwFlags=%08x, phKey=%p)\n", hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey);
+ if (dwFlags & CRYPT_IPSEC_HMAC_KEY) + { + FIXME("unimplemented for CRYPT_IPSEC_HMAC_KEY\n"); + SetLastError(NTE_BAD_FLAGS); + return FALSE; + } return import_key(hProv, pbData, dwDataLen, hPubKey, dwFlags, TRUE, phKey); }