Método IX509SignatureInformation::GetSignatureAlgorithm (certenroll.h)

O método GetSignatureAlgorithm recupera o OID ( identificador de objeto do algoritmo de assinatura).

Sintaxe

HRESULT GetSignatureAlgorithm(
  [in]  VARIANT_BOOL Pkcs7Signature,
  [in]  VARIANT_BOOL SignatureKey,
  [out] IObjectId    **ppValue
);

Parâmetros

[in] Pkcs7Signature

Uma variável VARIANT_BOOL que especifica se o algoritmo será usado para assinar uma solicitação de certificado PKCS nº 7 ou CMC.

[in] SignatureKey

Uma variável VARIANT_BOOL que especifica se um algoritmo usado apenas para assinatura é preferencial quando um algoritmo OID está associado a mais de uma finalidade. Por exemplo, XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) pode ser usado para assinatura e troca de chaves.

[out] ppValue

Endereço de uma variável que recebe um ponteiro para uma interface IObjectId que representa o algoritmo OID.

Retornar valor

Se a função for bem-sucedida, a função retornará S_OK.

Se a função falhar, ela retornará um valor HRESULT que indica o erro. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

Valor/código retornado Descrição
CERTSRV_E_PROPERTY_EMPTY
O OID do algoritmo de hash ou a propriedade NullSigned não foi especificada, mas o algoritmo de assinatura OID não pode ser encontrado.
CRYPT_E_UNKNOWN_ALGO
Não foi possível encontrar o algoritmo de assinatura combinado.

Comentários

Esse método pesquisa um algoritmo de assinatura armazenado em cache consistente com os parâmetros de entrada. Se nenhum for encontrado, o método usará os parâmetros de entrada mais os valores atribuídos a várias propriedades IX509SignatureInformation , conforme indicado pela lista a seguir.

  • Pkcs7Signature = true, NullSigned = true

    Esse caso representa uma solicitação de certificado PKCS nº 7 assinada em nulo. O método retorna o OID de XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2).

  • Pkcs7Signature = true, NullSigned = false

    Esse caso recupera um OID de algoritmo de assinatura discreto para uma solicitação PKCS nº 7 que não é assinada em nulo. A assinatura discreta requer que as propriedades HashAlgorithm e PublicKeyAlgorithm sejam definidas. No caso especial em que o algoritmo de chave pública é XCN_OID_X957_DSA e o algoritmo de hash não é XCN_OID_OIWSEC_sha1, o algoritmo de assinatura OID recuperado é XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3).

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = true

    Esse caso recupera um OID de algoritmo de assinatura discreto para uma solicitação PKCS #10 e codifica o OID do algoritmo de hash na propriedade Parameters . As propriedades HashAlgorithm e PublicKeyAlgorithm devem ser definidas.

  • Pkcs7Signature = false, NullSigned = false, AlternateSignatureAlgorithm = false

    Esse caso recupera um OID de algoritmo de assinatura discreto para uma solicitação PKCS nº 7. As propriedades HashAlgorithm e PublicKeyAlgorithm devem ser definidas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certenroll.h
DLL CertEnroll.dll

Confira também

IX509SignatureInformation