Partager via


Fonction CryptVerifyMessageHash (wincrypt.h)

La fonction CryptVerifyMessageHash vérifie le hachage du contenu spécifié.

Syntaxe

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
);

Paramètres

[in] pHashPara

Pointeur vers une structure de CRYPT_HASH_MESSAGE_PARA contenant des paramètres de hachage.

[in] pbHashedBlob

Pointeur vers une mémoire tampon contenant le contenu d’origine et son hachage.

[in] cbHashedBlob

Taille, en octets, de la mémoire tampon de hachage d’origine.

[out] pbToBeHashed

Pointeur vers une mémoire tampon pour recevoir le contenu d’origine qui a été haché.

Ce paramètre peut être NULL si le contenu d’origine n’est pas nécessaire pour un traitement supplémentaire ou pour définir la taille du contenu d’origine à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

[in, out] pcbToBeHashed

Pointeur vers un DWORD spécifiant la taille, en octets, de la mémoire tampon pbToBeHashed . Lorsque la fonction retourne, cette variable contient la taille, en octets, du contenu d’origine copié dans pbToBeHashed. Le contenu d’origine ne sera pas retourné si ce paramètre a la valeur NULL.

Note Lors du traitement des données retournées, les applications doivent utiliser la taille réelle des données retournées. La taille réelle peut être légèrement inférieure à la taille de la mémoire tampon spécifiée lors de l’entrée. (Lors de l’entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment grandes pour garantir que les données de sortie les plus volumineuses possibles tiennent dans la mémoire tampon.) En sortie, la variable pointée par ce paramètre est mise à jour pour refléter la taille réelle des données copiées dans la mémoire tampon.
 

[out, optional] pbComputedHash

Pointeur vers une mémoire tampon pour recevoir le hachage calculé. Ce paramètre peut avoir la valeur NULL si le hachage créé n’est pas nécessaire pour un traitement supplémentaire ou pour définir la taille du contenu d’origine à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

[in, out, optional] pcbComputedHash

Pointeur vers un DWORD spécifiant la taille, en octets, de la mémoire tampon pbComputedHash . Lorsque la fonction retourne, cette variable contient la taille, en octets, du hachage créé. Le hachage n’est pas retourné si ce paramètre a la valeur NULL.

Note Lors du traitement des données retournées, les applications doivent utiliser la taille réelle des données retournées. La taille réelle peut être légèrement inférieure à la taille de la mémoire tampon spécifiée lors de l’entrée. (Lors de l’entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment grandes pour garantir que les données de sortie les plus volumineuses possibles tiennent dans la mémoire tampon.) En sortie, la variable pointée par ce paramètre est mise à jour pour refléter la taille réelle des données copiées dans la mémoire tampon.
 

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).

Si la fonction échoue, la valeur de retour est zéro (FALSE).

Pour obtenir des informations d’erreur étendues, appelez GetLastError.

La liste suivante répertorie les codes d’erreur les plus couramment retournés par la fonction GetLastError .

Code de retour Description
CRYPT_E_UNEXPECTED_MSG_TYPE
Ce n’est pas un message de chiffrement haché.
E_INVALIDARG
Le type d’encodage de message n’est pas valide. Actuellement, seule PKCS_7_ASN_ENCODING est prise en charge. CbSize dans *pHashPara n’est pas valide.
ERROR_MORE_DATA
Si la mémoire tampon spécifiée par le paramètre pbToBeHashed n’est pas suffisamment grande pour contenir les données retournées, la fonction définit le code ERROR_MORE_DATA et stocke la taille de mémoire tampon requise, en octets, dans la variable pointée par pcbToBeHashed.
 
Note Les erreurs des fonctions appelées CryptCreateHash, CryptHashData et CryptGetHashParam peuvent être propagées à cette fonction.

Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage ASN.1 ( Abstract Syntax Notation One ). Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.

 

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptVerifyDetachedMessageHash

Fonctions de message simplifiées