Função CryptVerifyMessageSignatureWithKey (wincrypt.h)
A função CryptVerifyMessageSignatureWithKey verifica a assinatura de uma mensagem assinada usando informações de chave pública especificadas.
Sintaxe
BOOL CryptVerifyMessageSignatureWithKey(
[in] PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara,
[in] PCERT_PUBLIC_KEY_INFO pPublicKeyInfo,
[in] const BYTE *pbSignedBlob,
[in] DWORD cbSignedBlob,
[out] BYTE *pbDecoded,
[in, out] DWORD *pcbDecoded
);
Parâmetros
[in] pVerifyPara
Um ponteiro para uma estrutura CRYPT_KEY_VERIFY_MESSAGE_PARA que contém parâmetros de verificação.
[in] pPublicKeyInfo
Um ponteiro para uma estrutura CERT_PUBLIC_KEY_INFO que contém a chave pública usada para verificar a mensagem assinada. Se FOR NULL, a assinatura não será verificada.
[in] pbSignedBlob
Um ponteiro para um buffer que contém a mensagem assinada.
[in] cbSignedBlob
O tamanho, em bytes, do buffer de mensagens assinado.
[out] pbDecoded
Um ponteiro para um buffer para receber a mensagem decodificada.
Esse parâmetro poderá ser NULL se a mensagem decodificada não for necessária para processamento adicional ou para definir o tamanho da mensagem para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pcbDecoded
Um ponteiro para um valor DWORD que especifica o tamanho, em bytes, do buffer pbDecoded . Quando a função retorna, esse DWORD contém o tamanho, em bytes, da mensagem decodificada. A mensagem decodificada não será retornada se esse parâmetro for NULL.
Retornar valor
Se a função for bem-sucedida, a função retornará diferente de zero.
Se a função falhar, ela retornará zero. Para obter informações de erro estendidas, chame GetLastError.
A tabela a seguir mostra os códigos de erro mais comumente retornados pela função GetLastError .
Código de retorno | Descrição |
---|---|
|
Se o buffer especificado pelo parâmetro pbDecoded não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada por pcbDecoded. |
|
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. |
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 |