SslCreateEphemeralKey 函数

SslCreateEphemeralKey 函数创建临时密钥,以便在安全套接字层协议 (SSL) 握手期间进行的身份验证期间使用。

语法

SECURITY_STATUS WINAPI SslCreateEphemeralKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _Out_ NCRYPT_KEY_HANDLE  *phEphemeralKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  DWORD              dwKeyType,
  _In_  DWORD              dwKeyBitLen,
  _In_  PBYTE              pbParams,
  _In_  DWORD              cbParams,
  _In_  DWORD              dwFlags
);

参数

hSslProvider [in]

SSL 协议提供程序实例的句柄。

phEphemeralKey [out]

临时键的句柄。

dwProtocol [in]

CNG SSL 提供程序协议标识符值之一。

dwCipherSuite [in]

CNG SSL 提供程序密码套件标识符值之一。

dwKeyType [in]

CNG SSL 提供程序密钥类型标识符值之一。 对于不是 椭圆曲线加密 (ECC) 的密钥类型,请将此参数设置为零。

dwKeyBitLen [in]

密钥长度,以位为单位。

pbParams [in]

指向要创建的键的参数的缓冲区的指针。 如果未使用 Diffie-Hellman (临时) 密钥交换算法 (DHE) 密码套件,请将 pbParams 参数设置为 NULL将 cbParams 参数设置为零。

cbParams [in]

pbParams 缓冲区中数据的长度(以字节为单位)。

dwFlags [in]

此参数留待将来使用。

返回值

如果函数成功,则返回零。

如果函数失败,它将返回非零错误值。

返回代码/值 说明
NTE_NO_MEMORY
0x8009000EL
内存不足,无法分配缓冲区。
NTE_INVALID_HANDLE
0x80090026L
hSslProvider 句柄无效。
NTE_INVALID_PARAMETER
0x80090027L
提供的参数之一无效。

注解

使用 DHE 密码套件时,内部 SSL 实现会将服务器 pg 参数传递到 pbParamscbParams 参数中的 SslCreateEphemeralKey 函数。

pbParams 缓冲区中的数据的格式与设置 BCRYPT_DH_PARAMETERS 属性时使用的格式相同,并且以BCRYPT_DH_PARAMETER_HEADER结构开头。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Sslprovider.h
DLL
Ncrypt.dll