Função CryptVerifyDetachedMessageSignature (wincrypt.h)
A função CryptVerifyDetachedMessageSignature verifica uma mensagem assinada que contém uma assinatura ou assinaturas desanexadas.
Sintaxe
BOOL CryptVerifyDetachedMessageSignature(
[in] PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
[in] DWORD dwSignerIndex,
[in] const BYTE *pbDetachedSignBlob,
[in] DWORD cbDetachedSignBlob,
[in] DWORD cToBeSigned,
[in] const BYTE * [] rgpbToBeSigned,
[in] DWORD [] rgcbToBeSigned,
[out, optional] PCCERT_CONTEXT *ppSignerCert
);
Parâmetros
[in] pVerifyPara
Um ponteiro para uma estrutura CRYPT_VERIFY_MESSAGE_PARA que contém os parâmetros de verificação.
[in] dwSignerIndex
Índice da assinatura a ser verificada. Uma mensagem pode ter vários signatários e essa função pode ser chamada repetidamente, alterando dwSignerIndex para verificar outras assinaturas. Se a função retornar FALSE e GetLastError retornar CRYPT_E_NO_SIGNER, a chamada anterior recebeu o último signatário da mensagem.
[in] pbDetachedSignBlob
Um ponteiro para um BLOB que contém as assinaturas de mensagem codificadas.
[in] cbDetachedSignBlob
O tamanho, em bytes, da assinatura desanexada.
[in] cToBeSigned
Número de elementos de matriz em rgpbToBeSigned e rgcbToBeSigned.
[in] rgpbToBeSigned
Matriz de ponteiros para buffers que contêm o conteúdo a ser hash.
[in] rgcbToBeSigned
Matriz de tamanhos, em bytes, para os buffers de conteúdo apontados em rgpbToBeSigned.
[out, optional] ppSignerCert
Um ponteiro para um ponteiro para uma estrutura CERT_CONTEXT de um certificado de signatário. Quando terminar de usar o contexto de certificado, libere-o chamando a função CertFreeCertificateContext . Um ponteiro para uma estrutura CERT_CONTEXT não será retornado se esse parâmetro for NULL.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).
Se a função falhar, o valor retornado será zero (FALSE).
Para obter informações de erro estendidas, chame GetLastError.
O exemplo a seguir lista os códigos de erro mais comumente retornados pela função GetLastError .
Código de retorno | Descrição |
---|---|
|
Tipos de codificação de mensagem e certificado inválidos. Atualmente, há suporte apenas para PKCS_7_ASN_ENCODING e X509_ASN_ENCODING_TYPE. CbSize inválido em *pVerifyPara. |
|
Não é uma mensagem criptográfica assinada. |
|
A mensagem não tem nenhum signatário ou signatário para o dwSignerIndex especificado. |
|
A mensagem foi hash e assinada usando um algoritmo desconhecido ou sem suporte. |
|
A assinatura da mensagem não foi verificada. |
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.
Requisitos
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 |