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 |