Module: wine Branch: master Commit: 786c57d323179712bffaecd7da27a528e940048e URL: http://source.winehq.org/git/wine.git/?a=commit;h=786c57d323179712bffaecd7da...
Author: Juan Lang juan.lang@gmail.com Date: Sun Jan 16 12:01:47 2011 -0800
rsaenh: Only set key length on successful retrieval of hash value.
---
dlls/rsaenh/rsaenh.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c index 50954c5..df83f5a 100644 --- a/dlls/rsaenh/rsaenh.c +++ b/dlls/rsaenh/rsaenh.c @@ -4216,6 +4216,7 @@ BOOL WINAPI RSAENH_CPSetHashParam(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwPa
if (pCryptKey->aiAlgid == CALG_HMAC && !pCryptKey->dwKeyLen) { HCRYPTHASH hKeyHash; + DWORD keyLen;
if (!RSAENH_CPCreateHash(hProv, ((PHMAC_INFO)pbData)->HashAlgid, 0, 0, &hKeyHash)) @@ -4226,13 +4227,14 @@ BOOL WINAPI RSAENH_CPSetHashParam(HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwPa RSAENH_CPDestroyHash(hProv, hKeyHash); return FALSE; } - pCryptKey->dwKeyLen = sizeof(pCryptKey->abKeyValue); + keyLen = sizeof(pCryptKey->abKeyValue); if (!RSAENH_CPGetHashParam(hProv, hKeyHash, HP_HASHVAL, pCryptKey->abKeyValue, - &pCryptKey->dwKeyLen, 0)) + &keyLen, 0)) { RSAENH_CPDestroyHash(hProv, hKeyHash); return FALSE; } + pCryptKey->dwKeyLen = keyLen; RSAENH_CPDestroyHash(hProv, hKeyHash); } for (i=0; i<RSAENH_MIN(pCryptKey->dwKeyLen,pCryptHash->pHMACInfo->cbInnerString); i++) {