SslExportKey 函数
SslExportKey 函数将安全套接字层协议 (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。
注意
hKey 句柄是通过调用 SslOpenPrivateKey 函数获取的。 不支持从 NCryptOpenKey 函数获取的句柄。
-
pszBlobType [in]
-
一个以 null 结尾的 Unicode 字符串,其中包含指定要导出的 BLOB 类型的标识符。 这可以是以下值之一。
值 含义 - BCRYPT_DH_PUBLIC_BLOB
导出Diffie-Hellman 公钥。 pbOutput 缓冲区接收紧跟键数据的BCRYPT_DH_KEY_BLOB结构。 - BCRYPT_ECCPUBLIC_BLOB
(ECC) 公钥导出 椭圆曲线加密 。 pbOutput 缓冲区接收紧跟键数据的BCRYPT_ECCKEY_BLOB结构。 - BCRYPT_OPAQUE_KEY_BLOB
以特定于单个 加密服务提供程序 的格式导出对称密钥, (CSP) 。 不透明 BLOB 不可传输,必须使用生成 BLOB 的 CSP) (同一 个加密服务提供程序 导入。 - BCRYPT_RSAPUBLIC_BLOB
导出 RSA 公钥。 pbOutput 缓冲区接收紧跟键数据的BCRYPT_RSAKEY_BLOB结构。 -
pbOutput [out, 可选]
-
接收 密钥 BLOB 的缓冲区的地址。 cbOutput 参数包含此缓冲区的大小。 如果此参数为 NULL,则此函数会将所需大小(以字节为单位)放在由印刷电路板Result 参数指向的 DWORD 中。
-
cbOutput [in]
-
pbOutput 缓冲区的大小(以字节为单位)。
-
线路板 [ out]
-
接收复制到 pbOutput 缓冲区的字节数的 DWORD 变量的地址。 如果在调用函数时 将 pbOutput 参数设置为 NULL ,则 pbOutput 缓冲区的所需大小(以字节为单位)将在此参数指向的 DWORD 中返回。
-
dwFlags [in]
-
保留供将来使用。
返回值
如果函数成功,则返回零。
如果函数失败,则返回非零错误值。
可能的返回代码包括但不限于以下内容。
返回代码/值 | 说明 |
---|---|
|
提供的句柄之一无效。 |
备注
SslExportKey 函数有助于将会话密钥从一个进程传输到另一个进程,以及将公共部分导出临时密钥。
导出会话密钥时,BLOB 类型是不透明的,这意味着只要 SslExportKey 和 SslImportKey 函数都可以解释它,BLOB 的格式就无关紧要。
导出临时密钥的公共部分时,BLOB 类型必须是适当的类型,例如 NCRYPT_DH_PUBLIC_BLOB 或 NCRYPT_ECCPUBLIC_BLOB。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
DLL |
|