CryptHashSessionKey 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptHashSessionKey 関数は、セッション キー オブジェクトの暗号化ハッシュを計算します。 この関数は、同じハッシュ ハンドルを使用して複数回呼び出して、複数のキーの ハッシュ を計算できます。 CryptHashSessionKey の呼び出しは、CryptHashData の呼び出しと相互運用できます。

この関数を呼び出す前に、 CryptCreateHash を呼び出して ハッシュ オブジェクトのハンドルを作成する必要があります。

構文

BOOL CryptHashSessionKey(
  [in] HCRYPTHASH hHash,
  [in] HCRYPTKEY  hKey,
  [in] DWORD      dwFlags
);

パラメーター

[in] hHash

ハッシュ オブジェクトへのハンドル。

[in] hKey

ハッシュするキー オブジェクトへのハンドル。

[in] dwFlags

次のフラグ値が定義されています。

意味
CRYPT_LITTLE_ENDIAN
0x00000001
このフラグを設定すると、キーのバイトが リトル エンディアン 形式でハッシュされます。 既定では ( dwFlags が 0 の場合)、キーのバイトは ビッグ エンディアン 形式でハッシュされることに注意してください。

戻り値

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

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

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

リターン コード 説明
ERROR_INVALID_HANDLE
パラメーターの 1 つは、無効なハンドルを指定します。
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これはほとんどの場合、無効なポインターです。
NTE_BAD_ALGID
hHash ハンドルは、この CSP がサポートしていないアルゴリズムを指定します。
NTE_BAD_FLAGS
dwFlags パラメーターは 0 以外です。
NTE_BAD_HASH
hHash パラメーターで指定されたハッシュ オブジェクトが無効です。
NTE_BAD_HASH_STATE
既に "完了" とマークされているハッシュ オブジェクトにデータを追加しようとしました。
NTE_BAD_KEY
キー付きハッシュ アルゴリズムが使用されていますが、セッション キーは無効です。 このエラーは、ハッシュ操作が完了する前にセッション キーが破棄された場合に生成されます。
NTE_BAD_UID
ハッシュ オブジェクトの作成時に指定された CSP コンテキストが見つかりません。
NTE_FAIL
関数が予期しない方法で失敗しました。

要件

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

こちらもご覧ください

CryptCreateHash

CryptGenKey

CryptHashData

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