SslComputeFinishedHash 関数

SslComputeFinishedHash 関数は、Secure Sockets Layer プロトコル (SSL) ハンドシェイクの完了メッセージで送信されたハッシュを計算します。

構文

SECURITY_STATUS WINAPI SslComputeFinishedHash(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hMasterKey,
  _In_  NCRYPT_HASH_HANDLE hHandshakeHash,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _In_  DWORD              dwFlags
);

パラメーター

hSslProvider [in]

SSL プロトコル プロバイダー インスタンスのハンドル。

hMasterKey [in]

マスター キー オブジェクトのハンドル。

hHandshakeHash [in]

ハンドシェイク メッセージのハッシュのハンドル。

pbOutput [out]

終了メッセージのハッシュを受け取るバッファーへのポインター。

cbOutput [in]

pbOutput バッファーの長さ (バイト単位)。

dwFlags [in]

次のいずれかの定数。

説明
NCRYPT_SSL_CLIENT_FLAG
0x00000001
これがクライアント呼び出しであることを指定します。
NCRYPT_SSL_SERVER_FLAG
0x00000002
これがサーバー呼び出しであることを指定します。

戻り値

関数が成功すると、0 が返されます。

関数が失敗すると、0 以外のエラー値が返されます。

リターン コード/値 説明
NTE_INVALID_HANDLE
2148073510 (0x80090026)
指定されたハンドルの 1 つが無効です。

注釈

SslComputeFinishedHash 関数は、SSL ハンドシェイク中に使用するハッシュを生成するために使用される 3 つの関数のうちの 1 つです。

  1. SslCreateHandshakeHash 関数は、ハッシュ ハンドルを取得するために呼び出されます。
  2. SslHashHandshake 関数は、ハッシュ ハンドルを使用して任意の回数呼び出され、ハッシュにデータを追加します。
  3. SslComputeFinishedHash 関数はハッシュ ハンドルを使用して呼び出され、ハッシュされたデータのダイジェストを取得します。

ハッシュ値は、以前に送受信されたすべてのハンドシェイク メッセージのハッシュを使用してマスター シークレットをハッシュすることによって計算されます。

cbOutput の値によって、ハッシュ データの長さが決まります。 トランスポート層セキュリティ プロトコル (TLS) 1.0 プロトコルを使用する場合、これは常に 12 (バイト) である必要があります。 詳細については、「 TLS プロトコル バージョン 1.0」を参照してください。

要件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]
Header
Sslprovider.h
[DLL]
Ncrypt.dll