Share via


Funzione SslEnumCipherSuites

La funzione SslEnumCipherSuites enumera i pacchetti di crittografia supportati da un provider di protocollo SSL (Secure Sockets Layer Protocol ).

Sintassi

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

Parametri

hSslProvider [in]

Handle dell'istanza del provider del protocollo SSL.

hPrivateKey [in, facoltativo]

Handle di una chiave privata. Quando si specifica una chiave privata, SslEnumCipherSuites enumera i pacchetti di crittografia compatibili con la chiave privata. Ad esempio, se la chiave privata è una chiave DSS, vengono restituiti solo i pacchetti di crittografia DSS_DHE. Se la chiave privata è una chiave RSA, ma non supporta operazioni di decrittografia non elaborate, le suite di crittografia SSL2 non vengono restituite.

Impostare questo parametro su NULL quando non si specifica una chiave privata.

Nota

Un handle hPrivateKey viene ottenuto chiamando la funzione SslOpenPrivateKey . Gli handle ottenuti dalla funzione NCryptOpenKey non sono supportati.

ppCipherSuite [out]

Puntatore a una struttura NCRYPT_SSL_CIPHER_SUITE per ricevere l'indirizzo della suite di crittografia successiva nell'elenco.

ppEnumState [in, out]

Puntatore a un buffer che indica la posizione corrente nell'elenco di pacchetti di crittografia.

Impostare il puntatore su NULL nella prima chiamata a SslEnumCipherSuites. In ogni chiamata successiva passare di nuovo il valore non modificato a SslEnumCipherSuites.

Quando non sono disponibili più pacchetti di crittografia, è consigliabile liberare ppEnumState chiamando la funzione SslFreeBuffer .

dwFlags [in]

Questo parametro è riservato per usi futuri.

Valore restituito

Se la funzione ha esito positivo, restituisce zero.

Se la funzione ha esito negativo, restituisce un valore di errore diverso da zero.

I codici restituiti possibili includono, a titolo esemplificativo, quanto segue.

Codice/valore restituito Descrizione
NTE_NO_MEMORY
0x8009000EL
Memoria insufficiente per allocare i buffer necessari.
NTE_INVALID_HANDLE
0x80090026L
Uno degli handle forniti non è valido.
NTE_NO_MORE_ITEMS
0x8009002AL
Non sono supportati pacchetti di crittografia aggiuntivi.

Commenti

Per enumerare tutti i pacchetti di crittografia supportati dal provider SSL, chiamare la funzione SslEnumCipherSuites in un ciclo fino a quando non viene restituito NTE_NO_MORE_ITEMS.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Sslprovider.h
Libreria
Ncrypt.lib
DLL
Ncrypt.dll