SslGenerateMasterKey 函数
SslGenerateMasterKey 函数计算安全套接字层协议 (SSL) 主密钥。
语法
SECURITY_STATUS WINAPI SslGenerateMasterKey(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_ NCRYPT_KEY_HANDLE hPrivateKey,
_In_ NCRYPT_KEY_HANDLE hPublicKey,
_Out_ NCRYPT_KEY_HANDLE *phMasterKey,
_In_ DWORD dwProtocol,
_In_ DWORD dwCipherSuite,
_In_ PNCryptBufferDesc pParameterList,
_Out_ PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags
);
参数
-
hSslProvider [in]
-
SSL 协议提供程序实例的句柄。
-
hPrivateKey [in]
-
交换中使用的 私钥 的句柄。
-
hPublicKey [in]
-
交换中使用的 公钥 的句柄。
-
phMasterKey [out]
-
指向生成的 主密钥的句柄的指针。
-
dwProtocol [in]
-
dwCipherSuite [in]
-
pParameterList [in]
-
指向 NCryptBuffer 缓冲区数组的指针,该缓冲区包含用作密钥交换操作一部分的信息。 精确的缓冲区集取决于使用的协议和密码套件。 列表至少包含包含客户端和服务器提供的随机值的缓冲区。
-
pbOutput [out]
-
接收使用服务器的公钥加密的预主机密的缓冲区的地址。 cbOutput 参数包含此缓冲区的大小。 如果此参数为 NULL,则此函数在由印刷电路板Result 参数指向的 DWORD 中返回所需的大小(以字节为单位)。
注意
执行 RSA 密钥交换时使用此缓冲区。
-
cbOutput [in]
-
pbOutput 缓冲区的大小(以字节为单位)。
-
线路板 [ out]
-
指向 DWORD 值的指针,用于放置写入 pbOutput 缓冲区的字节数。
-
dwFlags [in]
-
指定此函数是用于客户端密钥交换还是服务器端密钥交换。
值 含义 - NCRYPT_SSL_CLIENT_FLAG
- 0x00000001
指定客户端密钥交换。 - NCRYPT_SSL_SERVER_FLAG
- 0x00000002
指定服务器端密钥交换。
返回值
如果函数成功,则返回零。
如果函数失败,则返回非零错误值。
可能的返回代码包括但不限于以下内容。
返回代码/值 | 说明 |
---|---|
|
没有足够的内存可用于分配必要的缓冲区。 |
|
提供的句柄之一无效。 |
|
phMasterKey 或 hPublicKey 参数无效。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
DLL |
|