Функция 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, необязательный]

Дескриптор закрытого ключа. Если указан закрытый ключ, SslEnumCipherSuites перечисляет комплекты шифров, совместимые с закрытым ключом. Например, если закрытый ключ является ключом DSS, возвращаются только DSS_DHE комплекты шифров. Если закрытый ключ является ключом RSA, но он не поддерживает необработанные операции расшифровки, комплекты шифров SSL2 не возвращаются.

Если закрытый ключ не указан, задайте для этого параметра значение NULL .

Примечание

Дескриптор hPrivateKey получается путем вызова функции SslOpenPrivateKey . Дескрипторы, полученные из функции NCryptOpenKey , не поддерживаются.

ppCipherSuite [out]

Указатель на структуру NCRYPT_SSL_CIPHER_SUITE для получения адреса следующего набора шифров в списке.

ppEnumState [in, out]

Указатель на буфер, указывающий текущее положение в списке комплектов шифров.

При первом вызове SslEnumCipherSuites задайте для указателя значение NULL. При каждом последующем вызове передайте неизмененные значения обратно в SslEnumCipherSuites.

Если наборов шифров больше нет, следует освободить ppEnumState , вызвав функцию SslFreeBuffer .

dwFlags [in]

Этот параметр зарезервирован для использования в будущем.

Возвращаемое значение

Если функция завершается успешно, она возвращает ноль.

Если функция завершается сбоем, она возвращает ненулевое значение ошибки.

Возможные коды возврата включают, помимо прочего, следующие.

Возвращаемый код/значение Описание
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