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

注意

藉由呼叫SslOpenPrivateKey函式來取得hPrivateKey控制碼。 不支援從 NCryptOpenKey 函式取得的控制碼。

ppCipherSuite [out]

要接收清單中下一個加密套件位址 之NCRYPT_SSL_CIPHER_SUITE 結構的指標。

ppEnumState [in, out]

緩衝區的指標,表示加密套件清單中的目前位置。

在第一次呼叫SslEnumCipherSuites時,將指標設定為Null。 在每個後續呼叫上,將未修改的值傳回 SslEnumCipherSuites

當沒有更多可用的加密套件時,您應該呼叫SslFreeBuffer 函式來釋放ppEnumState

dwFlags [in]

這個參數保留給未來使用。

傳回值

如果函式成功,則會傳回零。

如果函式失敗,它會傳回非零的錯誤值。

可能的傳回碼包括但不限於下列專案。

傳回碼/值 Description
NTE_NO_MEMORY
0x8009000EL
記憶體不足,無法配置必要的緩衝區。
NTE_INVALID_HANDLE
0x80090026L
其中一個提供的控制碼無效。
NTE_NO_MORE_ITEMS
0x8009002AL
不支援其他加密套件。

備註

若要列舉 SSL 提供者支援的所有加密套件,請在迴圈中呼叫 SslEnumCipherSuites 函式,直到 傳回NTE_NO_MORE_ITEMS 為止。

規格需求

需求
最低支援的用戶端
Windows Vista [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2008 [僅限傳統型應用程式]
標頭
Sslprovider.h
程式庫
Ncrypt.lib
DLL
Ncrypt.dll