Partager via


Fonction CryptHashData (wincrypt.h)

Important Cette API est déconseillée. Les logiciels nouveaux et existants doivent commencer à utiliser les API de nouvelle génération de chiffrement. Microsoft peut supprimer cette API dans les versions ultérieures.
 
La fonction CryptHashData ajoute des données à un objet de hachage spécifié. Cette fonction et CryptHashSessionKey peuvent être appelées plusieurs fois pour calculer le hachage des flux de données longs ou discontinus.

Avant d’appeler cette fonction, CryptCreateHash doit être appelé pour créer un handle d’un objet de hachage.

Syntaxe

BOOL CryptHashData(
  [in] HCRYPTHASH hHash,
  [in] const BYTE *pbData,
  [in] DWORD      dwDataLen,
  [in] DWORD      dwFlags
);

Paramètres

[in] hHash

Handle de l’objet de hachage.

[in] pbData

Pointeur vers une mémoire tampon qui contient les données à ajouter à l’objet de hachage.

[in] dwDataLen

Nombre d’octets de données à ajouter. Cette valeur doit être égale à zéro si l’indicateur CRYPT_USERDATA est défini.

[in] dwFlags

Les valeurs d’indicateur suivantes sont définies.

Valeur Signification
CRYPT_OWF_REPL_LM_HASH
0x00000001
Cet indicateur n’est pas utilisé.
CRYPT_USERDATA
1 (0x1)
Tous les fournisseurs de chiffrement Microsoft ignorent ce paramètre. Pour tout fournisseur de solutions Cloud qui n’ignore pas ce paramètre, si cet indicateur est défini, le fournisseur csp invite l’utilisateur à entrer des données directement. Ces données sont ajoutées au hachage. L’application n’est pas autorisée à accéder aux données. Cet indicateur peut être utilisé pour permettre à l’utilisateur d’entrer un code confidentiel dans le système.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Les codes d’erreur préfacés par « NTE » sont générés par le fournisseur de solutions Cloud que vous utilisez. Certains codes d’erreur possibles suivent.

Code de retour Description
ERROR_INVALID_HANDLE
L’un des paramètres spécifie un handle qui n’est pas valide.
ERROR_INVALID_PARAMETER
L’un des paramètres contient une valeur qui n’est pas valide. Il s’agit le plus souvent d’un pointeur qui n’est pas valide.
NTE_BAD_ALGID
Le handle hHash spécifie un algorithme que ce csp ne prend pas en charge.
NTE_BAD_FLAGS
Le paramètre dwFlags contient une valeur qui n’est pas valide.
NTE_BAD_HASH
L’objet de hachage spécifié par le paramètre hHash n’est pas valide.
NTE_BAD_HASH_STATE
Une tentative a été effectuée pour ajouter des données à un objet de hachage qui est déjà marqué « terminé ».
NTE_BAD_KEY
Un algorithme de hachage à clé est utilisé, mais la clé de session n’est plus valide. Cette erreur est générée si la clé de session est détruite avant la fin de l’opération de hachage.
NTE_BAD_LEN
Le fournisseur csp n’ignore pas l’indicateur CRYPT_USERDATA, l’indicateur est défini et le paramètre dwDataLen a une valeur différente de zéro.
NTE_BAD_UID
Le contexte CSP qui a été spécifié lors de la création de l’objet de hachage est introuvable.
NTE_FAIL
La fonction a échoué d’une manière inattendue.
NTE_NO_MEMORY
Le fournisseur de solutions Cloud a manqué de mémoire pendant l’opération.

Configuration requise

Condition requise Valeur
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 Advapi32.lib
DLL Advapi32.dll

Voir aussi

CryptCreateHash

CryptHashSessionKey

CryptSignHash

Fonctions de hachage et de signature numérique