Método ICEnroll3::EnumAlgs (xenroll.h)

[Esse método não está mais disponível para uso desde o Windows Server 2008 e o Windows Vista.]

O método EnumAlgs recupera as IDs de algoritmos criptográficos em uma determinada classe de algoritmo compatível com o CSP ( provedor de serviços criptográficos ) atual. Esse método foi definido pela primeira vez na interface ICEnroll3 .

Sintaxe

HRESULT EnumAlgs(
  [in]  LONG dwIndex,
  [in]  LONG algClass,
  [out] LONG *pdwAlgID
);

Parâmetros

[in] dwIndex

Especifica a posição ordinal do algoritmo cuja ID será recuperada. Especifique zero para o primeiro algoritmo.

[in] algClass

Uma classe de algoritmo criptográfico. As IDs retornadas por esse método estarão na classe especificada. Especifique um dos seguintes:

  • ALG_CLASS_HASH
  • ALG_CLASS_KEY_EXCHANGE
  • ALG_CLASS_MSG_ENCRYPT
  • ALG_CLASS_DATA_ENCRYPT
  • ALG_CLASS_SIGNATURE

[out] pdwAlgID

Um ponteiro para uma variável para receber uma ID de algoritmo criptográfico compatível com o CSP atual.

Retornar valor

C++

O valor retornado é um HRESULT. Um valor de S_OK indica êxito. Quando não há mais algoritmos para enumerar, o valor ERROR_NO_MORE_ITEMS é retornado.

VB

Uma ID de algoritmo criptográfico compatível com o CSP atual. Quando não há mais algoritmos para enumerar, o valor ERROR_NO_MORE_ITEMS é retornado.

Comentários

Para obter a ID do algoritmo e as constantes de classe usadas por esse método, consulte Wincrypt.h.

Exemplos

#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++;
}


Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho xenroll.h
Biblioteca Uuid.lib
DLL Xenroll.dll

Confira também

CEnroll

ICEnroll3

ICEnroll4