rsaenh: Validate pbData in CPSetKeyParam().

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
This commit is contained in:
Dmitry Timoshkov 2024-04-25 11:25:13 +03:00 committed by Alexandre Julliard
parent 5f984f8ce3
commit 4ff40a6708

View file

@ -3797,7 +3797,7 @@ BOOL WINAPI RSAENH_CPGetHashParam(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwPa
* CRYPT_EXPORT, CRYPT_READ, CRYPT_WRITE, CRYPT_MAC * CRYPT_EXPORT, CRYPT_READ, CRYPT_WRITE, CRYPT_MAC
* - KP_IV: Initialization vector * - KP_IV: Initialization vector
*/ */
BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData,
DWORD dwFlags) DWORD dwFlags)
{ {
CRYPTKEY *pCryptKey; CRYPTKEY *pCryptKey;
@ -3815,13 +3815,19 @@ BOOL WINAPI RSAENH_CPSetKeyParam(HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam
SetLastError(NTE_BAD_FLAGS); SetLastError(NTE_BAD_FLAGS);
return FALSE; return FALSE;
} }
if (!lookup_handle(&handle_table, hKey, RSAENH_MAGIC_KEY, (OBJECTHDR**)&pCryptKey)) if (!lookup_handle(&handle_table, hKey, RSAENH_MAGIC_KEY, (OBJECTHDR**)&pCryptKey))
{ {
SetLastError(NTE_BAD_KEY); SetLastError(NTE_BAD_KEY);
return FALSE; return FALSE;
} }
if (!pbData)
{
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
switch (dwParam) { switch (dwParam) {
case KP_PADDING: case KP_PADDING:
/* The MS providers only support PKCS5_PADDING */ /* The MS providers only support PKCS5_PADDING */