Module: wine Branch: master Commit: 9f8d00889f5a03b0a4b7585893a374600212eb42 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9f8d00889f5a03b0a4b7585893...
Author: Juan Lang juan.lang@gmail.com Date: Sun Jan 16 12:06:30 2011 -0800
rsaenh: Be more careful about when to hash HMAC key material.
---
dlls/rsaenh/rsaenh.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c index df83f5a..afd06e1 100644 --- a/dlls/rsaenh/rsaenh.c +++ b/dlls/rsaenh/rsaenh.c @@ -139,6 +139,7 @@ typedef struct tagKEYCONTAINER #define RSAENH_HMAC_DEF_IPAD_CHAR 0x36 #define RSAENH_HMAC_DEF_OPAD_CHAR 0x5c #define RSAENH_HMAC_DEF_PAD_LEN 64 +#define RSAENH_HMAC_BLOCK_LEN 64 #define RSAENH_DES_EFFECTIVE_KEYLEN 56 #define RSAENH_DES_STORAGE_KEYLEN 64 #define RSAENH_3DES112_EFFECTIVE_KEYLEN 112 @@ -2956,7 +2957,7 @@ static BOOL import_plaintext_key(HCRYPTPROV hProv, CONST BYTE *pbData, *phKey = new_key(hProv, CALG_HMAC, 0, &pCryptKey); if (*phKey == (HCRYPTKEY)INVALID_HANDLE_VALUE) return FALSE; - if (*pKeyLen <= sizeof(pCryptKey->abKeyValue)) + if (*pKeyLen <= RSAENH_MIN(sizeof(pCryptKey->abKeyValue), RSAENH_HMAC_BLOCK_LEN)) { memcpy(pCryptKey->abKeyValue, pbKeyStream, *pKeyLen); pCryptKey->dwKeyLen = *pKeyLen;