Função CryptHashMessage (wincrypt.h)
A função CryptHashMessage cria um hash da mensagem.
Sintaxe
BOOL CryptHashMessage(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BOOL fDetachedHash,
[in] DWORD cToBeHashed,
[in] const BYTE * [] rgpbToBeHashed,
[in] DWORD [] rgcbToBeHashed,
[out] BYTE *pbHashedBlob,
[in, out] DWORD *pcbHashedBlob,
[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 os parâmetros de hash.
[in] fDetachedHash
Se esse parâmetro for definido como TRUE, somente pbComputedHash será codificado em pbHashedBlob. Caso contrário, rgpbToBeHashed e pbComputedHash são codificados.
[in] cToBeHashed
O número de elementos de matriz em rgpbToBeHashed e rgcbToBeHashed. Esse parâmetro só pode ser um, a menos que fDetachedHash seja definido como TRUE.
[in] rgpbToBeHashed
Uma matriz de ponteiros para buffers que contêm o conteúdo a ser hash.
[in] rgcbToBeHashed
Uma matriz de tamanhos, em bytes, dos buffers apontados por rgpbToBeHashed.
[out] pbHashedBlob
Um ponteiro para um buffer para receber a mensagem de hash codificada para transmissão.
Esse parâmetro poderá ser NULL se a mensagem de hash não for necessária para processamento adicional ou para definir o tamanho da mensagem hash para fins de alocação de memória. Uma mensagem hash não será retornada se esse parâmetro for NULL. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pcbHashedBlob
Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pbHashedBlob . Quando a função retorna, essa variável contém o tamanho, em bytes, da mensagem descriptografada copiada para pbHashedBlob. Esse parâmetro deve ser o endereço de um DWORD e não NULL ou o comprimento do buffer não será retornado.
[out, optional] pbComputedHash
Um ponteiro para um buffer para receber o valor de hash recém-criado. 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, optional] pcbComputedHash
Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pbComputedHash . Quando a função retorna, esse DWORD contém o tamanho, em bytes, do hash recém-criado que foi copiado para pbComputedHash.
Retornar valor
Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).
Se a função falhar, ela retornará zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.
Código de retorno | Descrição |
---|---|
|
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. |
|
Se o buffer especificado pelo parâmetro pbHashedBlob 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 pbHashedBlob. |
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
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 |