Compartir a través de


Método ICEnroll::get_HashAlgorithm (xenroll.h)

[Esta propiedad ya no está disponible para su uso a partir de Windows Server 2008 y Windows Vista.]

La propiedad HashAlgorithm establece o recupera solo el algoritmo hash de firma utilizado para firmar la solicitud de certificación PKCS #10.

Esta propiedad se definió por primera vez en la interfaz ICEnroll .

Esta propiedad es de lectura y escritura.

Sintaxis

HRESULT get_HashAlgorithm(
  BSTR *pbstr
);

Parámetros

pbstr

Valor devuelto

None

Observaciones

Este algoritmo hash de firma no se debe confundir con el algoritmo hash utilizado para firmar el certificado. El control de inscripción admite actualmente cualquier OID para algoritmos hash, además de los siguientes valores de nombre para mostrar: SHA1 (valor predeterminado), MD2 y MD5. Al recuperar esta propiedad, el valor recuperado está en formato OID (es decir, SHA1 aparece como 1.3.14.3.2.29). Al establecer esta propiedad, el formato de OID correspondiente se puede usar como alternativa al texto que se muestra para los valores descriptivos definidos.

El control de inscripción de certificados considera el valor de la propiedad HashAlgorithm como una sugerencia al algoritmo hash que se usará para firmar la solicitud de certificación PKCS #10. Si el proveedor de servicios criptográficos (CSP) admite el algoritmo especificado en la propiedad HashAlgorithm , se usará el algoritmo . De lo contrario, el control de inscripción de certificados intentará usar SHA1. Si EL CSP no admite SHA1, se probará MD5. Si no se admite SHA1 ni MD5, el control de inscripción de certificados intentará usar el primer algoritmo hash devuelto desde el CSP.

La propiedad HashAlgorithm afecta al comportamiento de los métodos siguientes:

Si se establecen las propiedades HashAlgID y HashAlgorithm , lo que se actualice por última vez especificará qué algoritmo hash se usará para firmar la solicitud de certificación PKCS #10.

Ejemplos

BSTR     bstrHashAlg = NULL;
HRESULT  hr;

// get the hash algorithm
hr = pEnroll->get_HashAlgorithm( &bstrHashAlg );
if ( FAILED ( hr ) )
    printf("Failed get_HashAlgorithm - %x\n", hr );
else
    printf( "HashAlgorithm: %ws\n", bstrHashAlg );
// free BSTR
if ( NULL != bstrHashAlg )
    SysFreeString( bstrHashAlg);

BSTR    bstrMyHashAlg = SysAllocString(TEXT("MD5"));
// alternatively, ... = SysAllocString(TEXT("1.2.840.113549.1.1.4"));

// set the hash algorithm
hr = pEnroll->put_HashAlgorithm( bstrMyHashAlg );
if ( FAILED ( hr ) )
    printf("Failed put_HashAlgorithm - %x\n", hr );
else
    printf( "HashAlgorithm was set to %ws\n", bstrMyHashAlg );
// free BSTR
if ( NULL != bstrMyHashAlg )
    SysFreeString( bstrMyHashAlg);

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