CryptSetHashParam 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、暗号化次世代 API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptSetHashParam 関数は、初期ハッシュ コンテンツの設定や特定のハッシュ アルゴリズムの選択など、ハッシュ オブジェクトの操作をカスタマイズします。

構文

BOOL CryptSetHashParam(
  [in] HCRYPTHASH hHash,
  [in] DWORD      dwParam,
  [in] const BYTE *pbData,
  [in] DWORD      dwFlags
);

パラメーター

[in] hHash

パラメーターを設定するハッシュ オブジェクトへのハンドル。

[in] dwParam

このパラメーターには、次の値のいずれかを指定できます。

意味
HP_HMAC_INFO。
暗号化ハッシュ アルゴリズムと、使用する内部文字列と外部文字列を指定する HMAC_INFO構造体への ポインター。
HP_HASHVAL。
ハッシュ オブジェクトに直接配置するハッシュ値を含むバイト配列。 この値を設定する前に、 CryptGetHashParam 関数を使用してHP_HASHSIZE値を読み取ることによって、ハッシュ値のサイズを決定する必要があります。

一部 の暗号化サービス プロバイダー (CSP) では、この機能がサポートされていません。

 
メモ 一部の CSP の種類では、この関数を使用して設定できる値を追加できます。
 

[in] pbData

値データ バッファー。 CryptSetHashParam を呼び出す前に、このバッファーに値データを配置します。 このデータの形式は、値番号によって異なります。

[in] dwFlags

このパラメーターは将来使用するために予約されており、0 に設定する必要があります。

戻り値

関数が成功した場合、関数は TRUE を返します。

関数が失敗すると、 FALSE が返されます。 拡張エラー情報については、 GetLastError を呼び出します。

"NTE" の前に表示されるエラー コードは、使用している特定の CSP によって生成されます。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
ERROR_INVALID_HANDLE
パラメーターの 1 つは、無効なハンドルを指定します。
ERROR_BUSY
現在、CSP コンテキストは別の プロセスで使用されています。
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これは、ほとんどの場合、無効なポインターです。
NTE_BAD_FLAGS
dwFlags パラメーターが 0 以外であるか、pbData バッファーに無効な値が含まれています。
NTE_BAD_HASH
hHash パラメーターで指定されたハッシュ オブジェクトが無効です。
NTE_BAD_TYPE
dwParam パラメーターは、不明な値を指定します。
NTE_BAD_UID
hKey キーの作成時に指定された CSP コンテキストが見つかりません。
NTE_FAIL
関数が予期しない方法で失敗しました。

注釈

場合によっては、他の場所で生成されたハッシュ値に署名する必要があります。 これは、次の一連の操作を使用して行うことができます。

  1. CryptCreateHash を使用してハッシュ オブジェクトを作成します。
  2. HP_HASHVAL値を設定します。
  3. CryptSignHash を使用してハッシュ値に署名し、デジタル署名ブロックを取得します。
  4. CryptDestroyHash を使用してハッシュ オブジェクトを破棄します。

要件

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

こちらもご覧ください

CryptCreateHash

CryptDestroyHash

CryptGetHashParam

CryptSetKeyParam

CryptSignHash

HMAC_INFO

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