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

[Essa propriedade não está mais disponível para uso a partir do Windows Server 2008 e do Windows Vista.]

A propriedade HashAlgorithm define ou recupera apenas o algoritmo de hash de assinatura usado para assinar a solicitação de certificação PKCS #10.

Essa propriedade foi definida pela primeira vez na interface ICEnroll .

Essa propriedade é leitura/gravação.

Sintaxe

HRESULT get_HashAlgorithm(
  BSTR *pbstr
);

Parâmetros

pbstr

Valor retornado

Nenhum

Comentários

Esse algoritmo de hash de assinatura não deve ser confundido com o algoritmo de hash usado para assinar o certificado. Atualmente, o controle de registro dá suporte a qualquer OID para algoritmos de hash, além dos seguintes valores de nome de exibição: SHA1 (o padrão), MD2 e MD5. Ao recuperar essa propriedade, o valor recuperado está no formato OID (ou seja, SHA1 aparece como 1.3.14.3.2.29). Ao definir essa propriedade, o formato OID correspondente pode ser usado como uma alternativa ao texto mostrado para os valores amigáveis definidos.

O Controle de Registro de Certificado considera o valor da propriedade HashAlgorithm como uma dica para o algoritmo de hash a ser usado para assinar a solicitação de certificação PKCS #10. Se o provedor de serviços criptográficos (CSP) der suporte ao algoritmo especificado na propriedade HashAlgorithm , o algoritmo será usado. Caso contrário, o Controle de Registro de Certificado tentará usar SHA1. Se o SHA1 não for compatível com o CSP, o MD5 será testado. Se não houver suporte para SHA1 nem MD5, o Controle de Registro de Certificado tentará usar o primeiro algoritmo de hash retornado do CSP.

A propriedade HashAlgorithm afeta o comportamento dos seguintes métodos:

Se as propriedades HashAlgID e HashAlgorithm estiverem definidas, o que for atualizado pela última vez especificará qual algoritmo de hash será usado para assinar a solicitação de certificação PKCS #10.

Exemplos

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 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