SslExportKey 関数
SslExportKey 関数は、Secure Sockets Layer プロトコル (SSL) セッション キーまたは公開エフェメラル キーをシリアル化された BLOB に返します。
構文
SECURITY_STATUS WINAPI SslExportKey(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_ NCRYPT_KEY_HANDLE hKey,
_In_ LPCWSTR pszBlobType,
_Out_opt_ PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags
);
パラメーター
-
hSslProvider [in]
-
SSL プロトコル プロバイダー インスタンスのハンドル。
-
hKey [in]
-
エクスポートするキーのハンドル。
キーを指定しない場合は、このパラメーターを NULL に設定 します。
Note
hKey ハンドルは、SslOpenPrivateKey 関数を呼び出すことによって取得されます。 NCryptOpenKey 関数から取得したハンドルはサポートされていません。
-
pszBlobType [in]
-
エクスポートする BLOB の種類を指定する識別子を含む null で終わる Unicode 文字列。 これには、次のいずれかの値を指定できます。
値 説明 - BCRYPT_DH_PUBLIC_BLOB
Diffie-Hellman 公開キーをエクスポートします。 pbOutput バッファーは、キー データの直後にBCRYPT_DH_KEY_BLOB構造体を受け取ります。 - BCRYPT_ECCPUBLIC_BLOB
楕円曲線暗号化 (ECC) 公開キーをエクスポートします。 pbOutput バッファーは、キー データの直後にBCRYPT_ECCKEY_BLOB構造を受け取ります。 - BCRYPT_OPAQUE_KEY_BLOB
1 つの 暗号化サービス プロバイダー (CSP) に固有の形式で対称キーをエクスポートします。 不透明 BLOB は転送できないため、BLOB を生成したのと同じ 暗号化サービス プロバイダー (CSP) を使用してインポートする必要があります。 - BCRYPT_RSAPUBLIC_BLOB
RSA 公開キーをエクスポートします。 pbOutput バッファーは、キー データの直後にBCRYPT_RSAKEY_BLOB構造を受け取ります。 -
pbOutput [out, optional]
-
キー BLOB を受け取るバッファーのアドレス。 cbOutput パラメーターには、このバッファーのサイズが含まれています。 このパラメーターが NULL の場合、この関数は pcbResult パラメーターが指す DWORD に必要なサイズをバイト単位で配置します。
-
cbOutput [in]
-
pbOutput バッファーのサイズ (バイト単位)。
-
pcbResult [out]
-
pbOutput バッファーにコピーされたバイト数を受け取る DWORD 変数のアドレス。 関数の呼び出し時に pbOutput パラメーターが NULL に設定されている場合、 pbOutput バッファーに必要なサイズ (バイト単位) が、このパラメーターによって指される DWORD で返されます。
-
dwFlags [in]
-
将来利用するために予約されています。
戻り値
関数が成功すると、0 が返されます。
関数が失敗すると、0 以外のエラー値が返されます。
可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード/値 | 説明 |
---|---|
|
指定されたハンドルの 1 つが無効です。 |
注釈
SslExportKey 関数を使用すると、あるプロセスから別のプロセスへのセッション キーの転送と、公開部分のエフェメラル キーのエクスポートが容易になります。
セッション キーをエクスポートする場合、BLOB の種類は不透明です。つまり、SSLExportKey 関数と SslImportKey 関数の両方で解釈できる限り、BLOB の形式は関係ありません。
エフェメラル キーの公開部分をエクスポートする場合、BLOB の種類は、 NCRYPT_DH_PUBLIC_BLOB や NCRYPT_ECCPUBLIC_BLOBなど、適切な型である必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2008 [デスクトップ アプリのみ] |
Header |
|
[DLL] |
|