SslEnumCipherSuites 函数
SslEnumCipherSuites 函数枚举安全套接字层协议 (SSL) 协议提供程序支持的密码套件。
语法
SECURITY_STATUS WINAPI SslEnumCipherSuites(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_opt_ NCRYPT_KEY_HANDLE hPrivateKey,
_Out_ NCRYPT_SSL_CIPHER_SUITE **ppCipherSuite,
_Inout_ PVOID *ppEnumState,
_In_ DWORD dwFlags
);
参数
-
hSslProvider [in]
-
SSL 协议提供程序实例的句柄。
-
hPrivateKey [in, optional]
-
私钥的句柄。 指定私钥时, SslEnumCipherSuites 枚举与私钥兼容的密码套件。 例如,如果私钥是 DSS 密钥,则仅返回DSS_DHE密码套件。 如果私钥是 RSA 密钥,但它不支持原始解密操作,则不会返回 SSL2 密码套件。
如果未指定私钥,请将此参数设置为 NULL 。
注意
hPrivateKey 句柄是通过调用 SslOpenPrivateKey 函数获取的。 不支持从 NCryptOpenKey 函数获取的句柄。
-
ppCipherSuite [out]
-
指向 NCRYPT_SSL_CIPHER_SUITE 结构的指针,用于接收列表中下一个密码套件的地址。
-
ppEnumState [in, out]
-
指向缓冲区的指针,指示密码套件列表中的当前位置。
首次调用 SslEnumCipherSuites 时,将指针设置为 NULL。 在每次后续调用中,将未修改的值传递回 SslEnumCipherSuites。
如果没有可用的密码套件,应通过调用 SslFreeBuffer 函数释放 ppEnumState。
-
dwFlags [in]
-
此参数留待将来使用。
返回值
如果函数成功,则返回零。
如果函数失败,则返回非零错误值。
可能的返回代码包括但不限于以下内容。
返回代码/值 | 说明 |
---|---|
|
没有足够的内存可用于分配必要的缓冲区。 |
|
提供的句柄之一无效。 |
|
不支持其他密码套件。 |
备注
若要枚举 SSL 提供程序支持的所有密码套件,请在循环中调用 SslEnumCipherSuites 函数,直到返回 NTE_NO_MORE_ITEMS 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|