CryptGetHashParam 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptGetHashParam 関数は、ハッシュ オブジェクトの操作を制御するデータを取得します。 実際のハッシュ値は、この関数を使用して取得できます。

構文

BOOL CryptGetHashParam(
  [in]      HCRYPTHASH hHash,
  [in]      DWORD      dwParam,
  [out]     BYTE       *pbData,
  [in, out] DWORD      *pdwDataLen,
  [in]      DWORD      dwFlags
);

パラメーター

[in] hHash

クエリを実行するハッシュ オブジェクトのハンドル。

[in] dwParam

クエリの種類。 このパラメーターは、次のいずれかのクエリに設定できます。

説明
HP_ALGID
ハッシュ アルゴリズム
ハッシュ オブジェクトの作成時に指定されたアルゴリズムを示す ALG_ID 。 ハッシュ アルゴリズムの一覧については、「 CryptCreateHash」を参照してください。
HP_HASHSIZE
ハッシュ値のサイズ
ハッシュ値のバイト数を示す DWORD 値。 この値は、ハッシュ アルゴリズムによって異なります。 適切な量のメモリを割り当てることができるように、アプリケーションはHP_HASHVAL値の直前にこの値を取得する必要があります。
HP_HASHVAL
ハッシュ値
hHash で指定されたハッシュ オブジェクトのハッシュ値またはメッセージ ハッシュ。 この値は、CryptHashData 関数と CryptHashSessionKey 関数を介して前にハッシュ オブジェクトに提供されたデータに基づいて生成されます。

CryptGetHashParam 関数はハッシュを完了します。 CryptGetHashParam が呼び出されると、ハッシュにデータを追加できなくなります。 CryptHashData または CryptHashSessionKey への追加の呼び出しは失敗します。 アプリケーションがハッシュで完了したら、ハッシュ オブジェクトを破棄するために CryptDestroyHash を呼び出す必要があります。

 
メモ CSP は、この関数がクエリできる値をさらに追加できます。
 

[out] pbData

指定した値データを受け取るバッファーへのポインター。 このデータの形式は、値番号によって異なります。

このパラメーターには NULL を 指定して、必要なメモリ サイズを決定できます。

[in, out] pdwDataLen

pbData バッファーのサイズ (バイト単位) を指定する DWORD 値へのポインター。 関数が戻るときに、 DWORD 値にはバッファーに格納されているバイト数が含まれます。

pbDataNULL の場合は、pdwDataLen の値を 0 に設定します。

メモ バッファーで返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズよりも若干小さくすることができます。 (入力では、バッファー サイズは通常、可能な最大の出力データがバッファーに収まるように十分な大きさで指定されます)。出力時に、このパラメーターが指す変数は、バッファーにコピーされたデータの実際のサイズを反映するように更新されます。
 

[in] dwFlags

将来使用するために予約されており、0 である必要があります。

戻り値

関数が成功した場合、戻り値は TRUE になります

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

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

リターン コード 説明
ERROR_INVALID_HANDLE
パラメーターの 1 つは、無効なハンドルを指定します。
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これはほとんどの場合、無効なポインターです。
ERROR_MORE_DATA
pbData パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pdwDataLen が指す変数に格納します。
NTE_BAD_FLAGS
dwFlags パラメーターは 0 以外です。
NTE_BAD_HASH
hHash パラメーターで指定されたハッシュ オブジェクトが無効です。
NTE_BAD_TYPE
dwParam パラメーターは、不明な値番号を指定します。
NTE_BAD_UID
ハッシュの作成時に指定された CSP コンテキストが見つかりません。

要件

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

関連項目

ALG_ID

CryptCreateHash

CryptDestroyHash

CryptGetKeyParam

CryptHashData

CryptHashSessionKey

CryptSetHashParam

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