Função CryptVerifyCertificateSignature (wincrypt.h)

A função CryptVerifyCertificateSignature verifica a assinatura de um certificado, crl ( lista de certificados revogados ) ou solicitação de certificado usando a chave pública em uma estrutura CERT_PUBLIC_KEY_INFO . A função não requer acesso a uma chave privada.

Sintaxe

BOOL CryptVerifyCertificateSignature(
  [in] HCRYPTPROV_LEGACY     hCryptProv,
  [in] DWORD                 dwCertEncodingType,
  [in] const BYTE            *pbEncoded,
  [in] DWORD                 cbEncoded,
  [in] PCERT_PUBLIC_KEY_INFO pPublicKey
);

Parâmetros

[in] hCryptProv

Esse parâmetro não é usado e deve ser definido como NULL.

Windows Server 2003 e Windows XP: Um identificador para o provedor de serviços criptográficos (CSP) usado para verificar a assinatura. O tipo de dados desse parâmetro é HCRYPTPROV.

NULL é passado, a menos que haja um motivo forte para passar um provedor criptográfico específico. Passar NULL faz com que o provedor RSA ou DSS padrão seja adquirido.

[in] dwCertEncodingType

O tipo de codificação de certificado que foi usado para criptografar o assunto. O identificador de tipo de codificação de mensagem , contido no WORD alto desse valor, é ignorado por essa função.

Esse parâmetro pode ser o seguinte tipo de codificação de certificado definido no momento.

Valor Significado
X509_ASN_ENCODING
1 (0x1)
Especifica a codificação de certificado X.509 .

[in] pbEncoded

Um ponteiro para um BLOB codificado de CERT_SIGNED_CONTENT_INFO conteúdo no qual a assinatura deve ser verificada.

[in] cbEncoded

O tamanho, em bytes, do conteúdo codificado em pbEncoded.

[in] pPublicKey

Um ponteiro para uma estrutura CERT_PUBLIC_KEY_INFO que contém a chave pública a ser usada ao verificar a assinatura.

Retornar valor

Retornará diferente de zero se tiver êxito ou zero caso contrário.

Para obter informações de erro estendidas, chame GetLastError.

Nota Erros das chamadas funções CryptCreateHash, CryptImportKey, CryptVerifySignature e CryptHashData podem ser propagados para essa função.
 
Em caso de falha, essa função fará com que os seguintes códigos de erro sejam retornados de GetLastError.
Código de retorno Descrição
ERROR_FILE_NOT_FOUND
Tipo de codificação de certificado inválido. Atualmente, há suporte apenas para X509_ASN_ENCODING .
NTE_BAD_ALGID
O OID ( identificador de objeto ) do algoritmo de assinatura não é mapeado para um algoritmo de hash conhecido ou com suporte.
NTE_BAD_SIGNATURE
A assinatura não era válida.
 

Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação ASN.1 ( Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.

Comentários

Atualmente, essa função chama a função CryptVerifyCertificateSignatureEx para executar a verificação.

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 wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CryptVerifyCertificateSignatureEx