em đang viết chưong trình về chử ký điện tử bàng winapi nhưng gặp lỗi với việc tạo Hash bằng mac. code của em như sau:

Code:
void creatHash(HCRYPTPROV hProv, HCRYPTKEY &hSessionKey,HCRYPTHASH &hHash)
{
	if (!CryptCreateHash(hProv, CALG_HMAC, 0, 0, &hHash))
		printf("Error cryptCreatHash!\n");
	HMAC_INFO hMac;
	//hMac = sizeof(HMAC_INFO);
	hMac.HashAlgid = CALG_MD5;
	hMac.cbInnerString = 0;
	hMac.cbOuterString = 0;
	hMac.pbInnerString = 0;
	hMac.pbOuterString = 0;
	if (!CryptSetHashParam(hHash, HP_HMAC_INFO, (BYTE*)&hMac, 0))
		printf("Error - CryptSetHashParam\n");
}
có bác nào giải thích cho em đc ko?
em cảm ơn.