Метод ICEnroll3::EnumAlgs (xenroll.h)
[Этот метод больше недоступен для использования в Windows Server 2008 и Windows Vista.]
Метод EnumAlgs извлекает идентификаторы криптографических алгоритмов в заданном классе алгоритмов, поддерживаемые текущим поставщиком служб шифрования (CSP). Этот метод был впервые определен в интерфейсе ICEnroll3 .
Синтаксис
HRESULT EnumAlgs(
[in] LONG dwIndex,
[in] LONG algClass,
[out] LONG *pdwAlgID
);
Параметры
[in] dwIndex
Указывает порядковый номер алгоритма, идентификатор которого будет извлечен. Укажите ноль для первого алгоритма.
[in] algClass
Класс алгоритма шифрования. Идентификаторы, возвращаемые этим методом, будут находиться в указанном классе. Укажите одно из следующих значений:
- ALG_CLASS_HASH
- ALG_CLASS_KEY_EXCHANGE
- ALG_CLASS_MSG_ENCRYPT
- ALG_CLASS_DATA_ENCRYPT
- ALG_CLASS_SIGNATURE
[out] pdwAlgID
Указатель на переменную для получения идентификатора алгоритма шифрования, поддерживаемого текущим поставщиком служб конфигурации.
Возвращаемое значение
C++
Возвращаемое значение — HRESULT. Значение S_OK указывает на успешное выполнение. Если алгоритмов для перечисления больше нет, возвращается значение, ERROR_NO_MORE_ITEMS.VB
Идентификатор алгоритма шифрования, поддерживаемый текущим поставщиком служб конфигурации. Если алгоритмов для перечисления больше нет, возвращается значение, ERROR_NO_MORE_ITEMS.Комментарии
Сведения об идентификаторах алгоритма и константах класса, используемых этим методом, см. в разделе Wincrypt.h.
Примеры
#include <windows.h>
#include <stdio.h>
#include <Xenroll.h>
DWORD dwAlgID;
DWORD dwIndex;
BSTR bstrAlgName = NULL;
HRESULT hr, hr2;
// Loop through the AlgIDs.
dwIndex = 0;
while ( TRUE )
{
// Enumerate the alg IDs for a specific class.
hr = pEnroll->EnumAlgs(dwIndex, ALG_CLASS_SIGNATURE, &dwAlgID);
if ( S_OK != hr )
{
break;
}
// Do something with the AlgID.
// For example, retrieve the corresponding name.
hr2 = pEnroll->GetAlgName( dwAlgID, &bstrAlgName);
if ( FAILED( hr2 ) )
printf("Failed GetAlgName [%x]\n", hr);
else
printf("AlgID: %d Name: %S\n", dwAlgID, bstrAlgName );
// Reuse the BSTR variable in next iteration.
if ( NULL != bstrAlgName )
{
SysFreeString( bstrAlgName );
bstrAlgName = NULL;
}
// Increment the index.
dwIndex++;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | xenroll.h |
Библиотека | Uuid.lib |
DLL | Xenroll.dll |