SslImportMasterKey 関数

SslImportMasterKey 関数は、サーバー側の Secure Sockets Layer プロトコル (SSL) キー交換操作を実行します。

構文

SECURITY_STATUS WINAPI SslImportMasterKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hPrivateKey,
  _Out_ NCRYPT_KEY_HANDLE  *phMasterKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  PNCryptBufferDesc  pParameterList,
  _In_  PBYTE              pbEncryptedKey,
  _In_  DWORD              cbEncryptedKey,
  _In_  DWORD              dwFlags
);

パラメーター

hSslProvider [in]

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

hPrivateKey [in]

交換で使用される 秘密キー へのハンドル。

phMasterKey [out]

マスター キーを受け取るハンドルへのポインター。

dwProtocol [in]

CNG SSL プロバイダー プロトコル識別子の値の 1 つ。

dwCipherSuite [in]

CNG SSL プロバイダー暗号スイート識別子の値の 1 つ。

pParameterList [in]

キー交換操作の一部として使用される情報を含む NCryptBuffer バッファーの配列へのポインター。 バッファーの正確なセットは、使用されるプロトコルと暗号スイートに依存します。 少なくとも、リストには、クライアントとサーバーが指定したランダムな値を含むバッファーが含まれます。

pbEncryptedKey [in]

サーバーの 公開キー で暗号化された暗号化されたプリマスター秘密キーを含むバッファーへのポインター。

cbEncryptedKey [in]

pbEncryptedKey バッファーのサイズ (バイト単位)。

dwFlags [in]

このパラメーターを NCRYPT_SSL_SERVER_FLAG に設定して、これがサーバー呼び出しであることを示します。

戻り値

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

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

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

リターン コード/値 説明
NTE_NO_MEMORY
0x8009000EL
必要なバッファーを割り当てるのに十分なメモリがありません。
NTE_INVALID_HANDLE
0x80090026L
指定されたハンドルの 1 つが無効です。
NTE_INVALID_PARAMETER
0x80090027L
phMasterKey パラメーターは NULL です

注釈

この関数は、プリマスター シークレットの暗号化を解除し、SSL マスター シークレットを計算し、呼び出し元にこのオブジェクトへのハンドルを返します。 このマスター キーを使用して、SSL セッション キーを派生させ、SSL ハンドシェイクを完了できます。

Note

この関数は、 RSA キー交換アルゴリズムが使用されている場合に使用されます。 DH を使用すると、代わりにサーバー コードによって SslGenerateMasterKey が呼び出されます。

要件

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