Compartir a través de


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

[Este método ya no está disponible para su uso a partir de Windows Server 2008 y Windows Vista.]

El método EnumAlgs recupera los identificadores de los algoritmos criptográficos de una clase de algoritmo determinada compatible con el proveedor de servicios criptográficos (CSP) actual. Este método se definió por primera vez en la interfaz ICEnroll3 .

Sintaxis

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

Parámetros

[in] dwIndex

Especifica la posición ordinal del algoritmo cuyo identificador se recuperará. Especifique cero para el primer algoritmo.

[in] algClass

Una clase de algoritmo criptográfico. Los identificadores devueltos por este método estarán en la clase especificada. Especifique uno de los siguientes:

  • ALG_CLASS_HASH
  • ALG_CLASS_KEY_EXCHANGE
  • ALG_CLASS_MSG_ENCRYPT
  • ALG_CLASS_DATA_ENCRYPT
  • ALG_CLASS_SIGNATURE

[out] pdwAlgID

Puntero a una variable para recibir un identificador de algoritmo criptográfico compatible con el CSP actual.

Valor devuelto

C++

El valor devuelto es hrESULT. Un valor de S_OK indica que se ha realizado correctamente. Cuando no hay más algoritmos que se van a enumerar, se devuelve el valor ERROR_NO_MORE_ITEMS.

VB

Identificador de algoritmo criptográfico que es compatible con el CSP actual. Cuando no hay más algoritmos que se van a enumerar, se devuelve el valor ERROR_NO_MORE_ITEMS.

Comentarios

Para conocer el identificador de algoritmo y las constantes de clase usadas por este método, consulte Wincrypt.h.

Ejemplos

#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 Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado xenroll.h
Library Uuid.lib
Archivo DLL Xenroll.dll

Consulte también

CEnroll

ICEnroll3

ICEnroll4