Compartilhar via


Função CryptVerifyMessageHash (wincrypt.h)

A função CryptVerifyMessageHash verifica o hash do conteúdo especificado.

Sintaxe

BOOL CryptVerifyMessageHash(
  [in]                PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]                BYTE                     *pbHashedBlob,
  [in]                DWORD                    cbHashedBlob,
  [out]               BYTE                     *pbToBeHashed,
  [in, out]           DWORD                    *pcbToBeHashed,
  [out, optional]     BYTE                     *pbComputedHash,
  [in, out, optional] DWORD                    *pcbComputedHash
);

Parâmetros

[in] pHashPara

Um ponteiro para uma estrutura CRYPT_HASH_MESSAGE_PARA que contém parâmetros de hash.

[in] pbHashedBlob

Um ponteiro para um buffer que contém o conteúdo original e seu hash.

[in] cbHashedBlob

O tamanho, em bytes, do buffer de hash original.

[out] pbToBeHashed

Um ponteiro para um buffer para receber o conteúdo original que foi hash.

Esse parâmetro poderá ser NULL se o conteúdo original não for necessário para processamento adicional ou para definir o tamanho do conteúdo original para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out] pcbToBeHashed

Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer pbToBeHashed . Quando a função retorna, essa variável contém o tamanho, em bytes, do conteúdo original copiado para pbToBeHashed. O conteúdo original não será retornado se esse parâmetro for NULL.

Nota Ao processar os dados retornados, os aplicativos devem usar o tamanho real dos dados retornados. O tamanho real pode ser um pouco menor do que o tamanho do buffer especificado na entrada. (Na entrada, os tamanhos de buffer geralmente são especificados grandes o suficiente para garantir que os maiores dados de saída possíveis se encaixem no buffer.) Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

[out, optional] pbComputedHash

Um ponteiro para um buffer para receber o hash computado. Esse parâmetro poderá ser NULL se o hash criado não for necessário para processamento adicional ou para definir o tamanho do conteúdo original para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out, optional] pcbComputedHash

Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer pbComputedHash . Quando a função retorna, essa variável contém o tamanho, em bytes, do hash criado. O hash não será retornado se esse parâmetro for NULL.

Nota Ao processar os dados retornados, os aplicativos devem usar o tamanho real dos dados retornados. O tamanho real pode ser um pouco menor do que o tamanho do buffer especificado na entrada. (Na entrada, os tamanhos de buffer geralmente são especificados grandes o suficiente para garantir que os maiores dados de saída possíveis se encaixem no buffer.) Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

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 seguinte lista os códigos de erro mais comumente retornados pela função GetLastError .

Código de retorno Descrição
CRYPT_E_UNEXPECTED_MSG_TYPE
Não é uma mensagem criptográfica hash.
E_INVALIDARG
O tipo de codificação de mensagem não é válido. Atualmente, há suporte apenas para PKCS_7_ASN_ENCODING. O cbSize em *pHashPara não é válido.
ERROR_MORE_DATA
Se o buffer especificado pelo parâmetro pbToBeHashed 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 pcbToBeHashed.
 
Nota Erros das funções chamadas CryptCreateHash, CryptHashData e CryptGetHashParam podem ser propagados para essa função.

Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação de ASN.1 (Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Codificação/Decodificação de Valores Retornados do 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

Confira também

CryptVerifyDetachedMessageHash

Funções de mensagem simplificadas