Поделиться через


Функция NCryptEnumAlgorithms (ncrypt.h)

Функция NCryptEnumAlgorithms получает имена алгоритмов, поддерживаемых указанным поставщиком хранилища ключей.

Синтаксис

SECURITY_STATUS NCryptEnumAlgorithms(
  [in]  NCRYPT_PROV_HANDLE  hProvider,
  [in]  DWORD               dwAlgOperations,
  [out] DWORD               *pdwAlgCount,
  [out] NCryptAlgorithmName **ppAlgList,
  [in]  DWORD               dwFlags
);

Параметры

[in] hProvider

Дескриптор поставщика хранилища ключей для перечисления алгоритмов. Этот дескриптор получается с помощью функции NCryptOpenStorageProvider .

[in] dwAlgOperations

Набор значений, определяющих классы алгоритма для перечисления. Это может быть ноль или сочетание одного или нескольких из следующих значений. Если dwAlgOperations равно нулю, перечисляются все алгоритмы.

Значение Значение
NCRYPT_CIPHER_OPERATION
0x00000001
Перечисление алгоритмов шифрования (симметричного шифрования).
NCRYPT_HASH_OPERATION
0x00000002
Перечисление алгоритмов хэширования.
NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION
0x00000004
Перечислите алгоритмы асимметричного шифрования.
NCRYPT_SECRET_AGREEMENT_OPERATION
0x00000008
Перечисление алгоритмов секретного соглашения.
NCRYPT_SIGNATURE_OPERATION
0x00000010
Перечисление алгоритмов цифровой подписи.

[out] pdwAlgCount

Адрес DWORD , получающего количество элементов в массиве ppAlgList .

[out] ppAlgList

Адрес указателя структуры NCryptAlgorithmName , который получает массив зарегистрированных имен алгоритмов. Переменная, на которую указывает параметр pdwAlgCount, получает количество элементов в этом массиве.

Если эта память больше не требуется, ее необходимо освободить, передав указатель на функцию NCryptFreeBuffer .

[in] dwFlags

Флаги, изменяющие поведение функции. Это может быть ноль (0) или следующее значение.

Значение Значение
NCRYPT_SILENT_FLAG
Запрашивает, чтобы поставщик служб ключей (KSP) не отображал пользовательский интерфейс. Если поставщик должен отображать пользовательский интерфейс для работы, вызов завершается сбоем, а KSP должен задать код ошибки NTE_SILENT_CONTEXT как последнюю ошибку.

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

Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.

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

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_BAD_FLAGS
Параметр dwFlags содержит недопустимое значение.
NTE_INVALID_HANDLE
Недопустимый параметр hProvider .
NTE_INVALID_PARAMETER
Один или несколько параметров недопустимы.
NTE_NO_MEMORY
Произошел сбой выделения памяти.

Комментарии

Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ncrypt.h
Библиотека Ncrypt.lib
DLL Ncrypt.dll