Juan Lang : rsaenh: Fail if CRYPT_IPSEC_HMAC_KEY is passed to CryptImportKey.
Alexandre Julliard
julliard at winehq.org
Thu Oct 22 10:39:55 CDT 2009
Module: wine
Branch: master
Commit: a48aae26e60b76695d0661ac8fa9001712f5a743
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a48aae26e60b76695d0661ac8fa9001712f5a743
Author: Juan Lang <juan.lang at 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);
}
More information about the wine-cvs
mailing list