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 |