crypt32: Test getting the hash from a hash message with an invalid index.

This commit is contained in:
Juan Lang 2007-07-25 18:08:58 -07:00 committed by Alexandre Julliard
parent c4f1adb7cc
commit 5572902046
1 changed files with 14 additions and 1 deletions

View File

@ -1853,6 +1853,7 @@ static void test_decode_msg_get_param(void)
HCRYPTMSG msg;
BOOL ret;
DWORD size = 0, version;
LPBYTE buf;
msg = CryptMsgOpenToDecode(PKCS_7_ASN_ENCODING, 0, 0, 0, NULL, NULL);
SetLastError(0xdeadbeef);
@ -1879,7 +1880,19 @@ static void test_decode_msg_get_param(void)
sizeof(hashParam));
check_param("hash computed hash", msg, CMSG_COMPUTED_HASH_PARAM,
hashParam, sizeof(hashParam));
size = strlen(szOID_RSA_data) + 1;
/* Curiously, getting the hash of index 1 succeeds, even though there's
* only one hash.
*/
ret = CryptMsgGetParam(msg, CMSG_COMPUTED_HASH_PARAM, 1, NULL, &size);
ok(ret, "CryptMsgGetParam failed: %08x\n", GetLastError());
buf = CryptMemAlloc(size);
if (buf)
{
ret = CryptMsgGetParam(msg, CMSG_COMPUTED_HASH_PARAM, 1, buf, &size);
ok(size == sizeof(hashParam), "Unexpected size %d\n", size);
ok(!memcmp(buf, hashParam, size), "Unexpected value\n");
CryptMemFree(buf);
}
check_param("hash inner OID", msg, CMSG_INNER_CONTENT_TYPE_PARAM,
(const BYTE *)szOID_RSA_data, strlen(szOID_RSA_data) + 1);
version = CMSG_HASHED_DATA_V0;