Commit f0d2766f authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

rsaenh: Validate pad byte when decrypting a block cipher.

parent 894cf6db
......@@ -2080,7 +2080,16 @@ BOOL WINAPI RSAENH_CPDecrypt(HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash,
}
memcpy(in, out, pCryptKey->dwBlockLen);
}
if (Final) *pdwDataLen -= pbData[*pdwDataLen-1];
if (Final) {
if (pbData[*pdwDataLen-1] &&
pbData[*pdwDataLen-1] <= pCryptKey->dwBlockLen &&
pbData[*pdwDataLen-1] < *pdwDataLen)
*pdwDataLen -= pbData[*pdwDataLen-1];
else {
SetLastError(NTE_BAD_DATA);
return FALSE;
}
}
} else if (GET_ALG_TYPE(pCryptKey->aiAlgid) == ALG_TYPE_STREAM) {
encrypt_stream_impl(pCryptKey->aiAlgid, &pCryptKey->context, pbData, *pdwDataLen);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment