SslExportKeyingMaterial 関数

RFC 5705 標準に従ってキーマテリアルをエクスポートします。 この関数は、TLS 擬似乱数関数を使用して、キーマテリアルのバイト バッファーを生成します。 マスター シークレットへの参照、明確な ASCII ラベル、クライアントとサーバーのランダムな値、および必要に応じてアプリケーション コンテキスト データへの参照を受け取ります。

構文

SECURITY_STATUS WINAPI SslExportKeyingMaterial(
  _In_     NCRYPT_PROV_HANDLE hSslProvider,
  _In_     NCRYPT_KEY_HANDLE  hMasterKey,
  _In_     PCHAR              sLabel,
  _In_     PBYTE              pbRandoms,
  _In_     DWORD              cbRandoms,
  _In_opt_ PBYTE              pbContextValue,
  _In_     WORD               cbContextValue,
  _Out_    PBYTE              pbOutput,
  _In_     DWORD              cbOutput,
  _In_     DWORD              dwFlags
);

パラメーター

hSslProvider [in]

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

hMasterKey [in]

エクスポートするキーマテリアルの作成に使用されるマスター キー オブジェクトのハンドル。

sLabel [in]

NUL で終わる ASCII ラベル文字列。 Schannel は、擬似乱数関数に渡す前に、終了する NUL 文字を削除します。

pbRandoms [in]

TLS 接続のclient_randomserver_random値の連結を含むバッファーへのポインター。

cbRandoms [in]

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

pbContextValue [in, optional]

アプリケーション コンテキストを含むバッファーへのポインター。 pbContextValueNULL の場合、cbContextValue は 0 である必要があります。

cbContextValue [in]

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

pbOutput [out]

エクスポートされたキーマテリアルを受け取るバッファーのアドレス。 cbOutput パラメーターには、このバッファーのサイズが含まれています。 この値を NULL にすることはできません。

cbOutput [in]

pbOutput バッファーの長さ (バイト単位)。 0 より大きくなければなりません。

dwFlags [in]

使用されていません。 0 に設定する必要があります。

戻り値

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

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

可能なリターン コードには、次のものが含まれますが、これらに限定されません。

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

要件

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