CryptDestroyHash ハッシュオブジェクトの破棄

Cの宣言:

BOOL CryptDestroyHash(HCRYPTHASH hHash);

説明:

hHashで指定されたハッシュオブジェクトを破棄する。

引数の意味は以下の通り。
hHash 破棄するハッシュオブジェクトのハンドル。

Cのサンプル:

デフォルト鍵コンテナにより、コード中のBufで指定されているデータに対してハッシュアルゴリズムMD5で電子署名を生成する。また生成した署名の検証を行う。
void SignData()
{
	HCRYPTPROV hProv;
	HCRYPTHASH hHash;
	HCRYPTKEY hKey;
	BOOL bResult;
	BYTE Buf[] = "今日は良い天気です";
	BYTE Signature[100];
	DWORD SignLen;

	SignLen = 100;

	/* デフォルト鍵コンテナの取得 */
	CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0);

	/* ハッシュ値の生成 */
	CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash);
	CryptHashData(hHash, Buf, lstrlen(Buf)+1, 0);
	
	/* 署名生成 */
	CryptSignHash(hHash, AT_SIGNATURE, NULL, 0, Signature, &SignLen);

	/* 署名検証 */
	CryptGetUserKey(hProv, AT_SIGNATURE, &hKey);
	bResult = CryptVerifySignature(hHash, Signature, SignLen, hKey, NULL, 0);

	if(bResult) printf("検証成功\n");
	else printf("検証失敗\n");

	/* 後処理 */
	CryptDestroyKey(hKey);
	CryptDestroyHash(hHash);
	CryptReleaseContext(hProv, 0);
}
(original text:1998/12/28 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。