Функция CryptEnumKeyIdentifierProperties (wincrypt.h)

Важно Этот API является устаревшим. Новое и существующее программное обеспечение должно начать использовать API-интерфейсы шифрования следующего поколения. Корпорация Майкрософт может удалить этот API в будущих выпусках.
 
Функция CryptEnumKeyIdentifierProperties перечисляет идентификаторы ключей и их свойства. Эта функция не вызывается в цикле. Скорее, он выполняет внутренний цикл до тех пор, пока не будет перечислено последнее свойство идентификатора ключа или функция обратного вызова не вернет ЗНАЧЕНИЕ FALSE. Если значение dwPropId равно нулю или свойства идентификатора ключа совпадают с dwPropId, вызывается функция обратного вызова.

Синтаксис

BOOL CryptEnumKeyIdentifierProperties(
  [in, optional] const CRYPT_HASH_BLOB     *pKeyIdentifier,
  [in]           DWORD                     dwPropId,
  [in]           DWORD                     dwFlags,
  [in, optional] LPCWSTR                   pwszComputerName,
  [in]           void                      *pvReserved,
  [in, optional] void                      *pvArg,
  [in]           PFN_CRYPT_ENUM_KEYID_PROP pfnEnum
);

Параметры

[in, optional] pKeyIdentifier

Указатель на структуру CRYPT_HASH_BLOB , содержащую идентификатор ключа.

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

Если pKeyIdentifier не равно NULL, функция обратного вызова pfnEnum вызывается только для указанного идентификатора ключа.

[in] dwPropId

Указывает идентификатор свойства для перечисления.

Если значение dwPropId равно нулю, эта функция вызывает функцию обратного вызова со всеми свойствами.

Если значение dwPropId не равно нулю, а pKeyIdentifier имеет значение NULL, функция обратного вызова вызывается только для тех идентификаторов ключей, которые имеют указанное свойство (задает для параметра cProppfnEnum значение 1 ). Все идентификаторы ключей, у которых нет свойства , пропускаются.

Можно использовать любой идентификатор свойства сертификата.

[in] dwFlags

По умолчанию выполняется поиск в списке идентификаторов ключей для CurrentUser. Если задано CRYPT_KEYID_MACHINE_FLAG, выполняется поиск в списке идентификаторов ключей LocalMachine (если pwszComputerName имеет значение NULL) или удаленного компьютера (если pwszComputerName не равно NULL). Дополнительные сведения см. в разделе pwszComputerName.

[in, optional] pwszComputerName

Указатель на имя удаленного компьютера для поиска. Если CRYPT_KEYID_MACHINE_FLAG задано в dwFlags, на удаленном компьютере выполняется поиск списка идентификаторов ключей. Если выполняется поиск на локальном компьютере, а не на удаленном компьютере, pwszComputerName устанавливается значение NULL.

[in] pvReserved

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

[in, optional] pvArg

Указатель на данные, передаваемые в функцию обратного вызова. Тип представляет собой пустоту, которая позволяет приложению объявлять, определять и инициализировать структуру или аргумент для хранения любой информации.

[in] pfnEnum

Указатель на определяемую приложением функцию обратного вызова, которая выполняется для каждой записи идентификатора ключа, которая соответствует входным параметрам. Дополнительные сведения о параметрах функций обратного вызова см. в разделе CRYPT_ENUM_KEYID_PROP.

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

Функция CryptEnumKeyIdentifierProperties неоднократно вызывает функцию обратного вызова CRYPT_ENUM_KEYID_PROP , пока не будет перечислен последний идентификатор ключа или функция обратного вызова не вернет значение FALSE.

Если main функция завершается успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается сбоем, она возвращает ноль (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Чтобы продолжить перечисление, функция возвращает значение TRUE.

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

Комментарии

Идентификатор ключа может иметь те же свойства, что и контекст сертификата.

Примеры

Пример использования этой функции см. в разделе Пример программы C. Работа с идентификаторами ключей.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

Базовые функции шифрования

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty