CryptDestroyHash 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、暗号化次世代 API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptDestroyHash 関数は、hHash パラメーターによって参照されるハッシュ オブジェクトを破棄します。 ハッシュ オブジェクトが破棄された後は、使用できなくなります。

セキュリティを確保するために、ハッシュ オブジェクトを使用した後に破棄することをお勧めします。

構文

BOOL CryptDestroyHash(
  [in] HCRYPTHASH hHash
);

パラメーター

[in] hHash

破棄されるハッシュ オブジェクトのハンドル。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 拡張エラー情報については、 GetLastError を呼び出します。

"NTE" の前に表示されるエラー コードは、使用している特定の 暗号化サービス プロバイダー (CSP) によって生成されます。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
ERROR_BUSY
hHash で指定されたハッシュ オブジェクトは現在使用されており、破棄できません。
ERROR_INVALID_HANDLE
hHash パラメーターは、無効なハンドルを指定します。
ERROR_INVALID_PARAMETER
hHash パラメーターに無効な値が含まれています。
NTE_BAD_ALGID
hHash ハンドルは、この CSP でサポートされていないアルゴリズムを指定します。
NTE_BAD_HASH
hHash パラメーターで指定されたハッシュ オブジェクトが無効です。
NTE_BAD_UID
ハッシュ オブジェクトの作成時に指定された CSP コンテキストが見つかりません。

解説

ハッシュ オブジェクトが破棄されると、多くの CSP によって、ハッシュ オブジェクトが保持されていた CSP 内のメモリが上書きされます。 その後、CSP メモリが解放されます。

CryptCreateHashCryptDestroyHash の呼び出しの間には、1 対 1 の対応が必要です。

特定の CSP を使用して作成されたすべてのハッシュ オブジェクトは、その CSP ハンドルが CryptReleaseContext 関数で解放される前に破棄する必要があります。

CryptDestroyHash 関数を使用する例については、「C プログラムの例: セッション キーの作成とハッシュ」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

CryptCreateHash

CryptHashData

CryptSignHash

ハッシュ関数とデジタル署名関数