SslEnumCipherSuites, fonction

La fonction SslEnumCipherSuites énumère les suites de chiffrement prises en charge par un fournisseur de protocole SSL ( Secure Sockets Layer Protocol ).

Syntaxe

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
);

Paramètres

hSslProvider [in]

Handle du fournisseur de protocole SSL instance.

hPrivateKey [in, facultatif]

Handle d’une clé privée. Lorsqu’une clé privée est spécifiée, SslEnumCipherSuites énumère les suites de chiffrement compatibles avec la clé privée. Par exemple, si la clé privée est une clé DSS, seules les suites de chiffrement DSS_DHE sont retournées. Si la clé privée est une clé RSA, mais qu’elle ne prend pas en charge les opérations de déchiffrement brutes, les suites de chiffrement SSL2 ne sont pas retournées.

Définissez ce paramètre sur NULL lorsque vous ne spécifiez pas de clé privée.

Notes

Un handle hPrivateKey est obtenu en appelant la fonction SslOpenPrivateKey . Les descripteurs obtenus à partir de la fonction NCryptOpenKey ne sont pas pris en charge.

ppCipherSuite [out]

Pointeur vers une structure de NCRYPT_SSL_CIPHER_SUITE pour recevoir l’adresse de la suite de chiffrement suivante dans la liste.

ppEnumState [in, out]

Pointeur vers une mémoire tampon qui indique la position actuelle dans la liste des suites de chiffrement.

Définissez le pointeur sur NULL lors du premier appel à SslEnumCipherSuites. À chaque appel suivant, transmettez la valeur non modifiée à SslEnumCipherSuites.

Lorsqu’il n’y a plus de suites de chiffrement disponibles, vous devez libérer ppEnumState en appelant la fonction SslFreeBuffer .

dwFlags [in]

Ce paramètre est réservé à un usage futur.

Valeur retournée

Si la fonction réussit, elle retourne zéro.

Si la fonction échoue, elle retourne une valeur d’erreur différente de zéro.

Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.

Code/valeur de retour Description
NTE_NO_MEMORY
0x8009000EL
La mémoire disponible est insuffisante pour allouer les mémoires tampons nécessaires.
NTE_INVALID_HANDLE
0x80090026L
L’un des handles fournis n’est pas valide.
NTE_NO_MORE_ITEMS
0x8009002AL
Aucune suite de chiffrement supplémentaire n’est prise en charge.

Notes

Pour énumérer toutes les suites de chiffrement prises en charge par le fournisseur SSL, appelez la fonction SslEnumCipherSuites dans une boucle jusqu’à ce que NTE_NO_MORE_ITEMS soit retourné.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
Sslprovider.h
Bibliothèque
Ncrypt.lib
DLL
Ncrypt.dll