Compartilhar via


Função CryptVerifyDetachedMessageHash (wincrypt.h)

A função CryptVerifyDetachedMessageHash verifica um hash desanexado.

Sintaxe

BOOL CryptVerifyDetachedMessageHash(
  [in]      PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]      BYTE                     *pbDetachedHashBlob,
  [in]      DWORD                    cbDetachedHashBlob,
  [in]      DWORD                    cToBeHashed,
  [in]      const BYTE * []          rgpbToBeHashed,
  [in]      DWORD []                 rgcbToBeHashed,
  [out]     BYTE                     *pbComputedHash,
  [in, out] DWORD                    *pcbComputedHash
);

Parâmetros

[in] pHashPara

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

[in] pbDetachedHashBlob

Um ponteiro para o hash codificado e desanexado.

[in] cbDetachedHashBlob

O tamanho, em bytes, do hash desanexado.

[in] cToBeHashed

Número de elementos nas matrizes rgpbToBeHashed e rgcbToBeHashed .

[in] rgpbToBeHashed

Matriz de ponteiros para buffers de conteúdo a serem hash.

[in] rgcbToBeHashed

Matriz de tamanhos, em bytes, para os buffers de conteúdo apontados pelos elementos da matriz rgcbToBeHashed .

[out] pbComputedHash

Um ponteiro para um buffer para receber o hash computado.

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

[in, out] pcbComputedHash

Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer pbComputedHash . Quando a função retorna, esse DWORD 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 ligeiramente 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 caibam 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.
 

Retornar valor

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
CRYPT_E_UNEXPECTED_MSG_TYPE
Não é uma mensagem criptográfica com 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 pbComputedHash 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 pcbComputedHash.
 
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 ASN.1 ( Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.

 

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

CryptVerifyMessageHash

Funções de mensagem simplificadas