BCryptHashData, fonction (bcrypt.h)

La fonction BCryptHashData effectue un hachage unidirectionnel ou un code d’authentification de message (MAC) sur une mémoire tampon de données.

Syntaxe

NTSTATUS BCryptHashData(
  [in, out] BCRYPT_HASH_HANDLE hHash,
  [in]      PUCHAR             pbInput,
  [in]      ULONG              cbInput,
  [in]      ULONG              dwFlags
);

Paramètres

[in, out] hHash

Handle de l’objet de hachage ou MAC à utiliser pour effectuer l’opération. Ce handle est obtenu en appelant la fonction BCryptCreateHash .

[in] pbInput

Pointeur vers une mémoire tampon qui contient les données à traiter. Le paramètre cbInput contient le nombre d’octets dans cette mémoire tampon. Cette fonction ne modifie pas le contenu de cette mémoire tampon.

[in] cbInput

Nombre d’octets dans la mémoire tampon pbInput .

[in] dwFlags

Ensemble d’indicateurs qui modifient le comportement de cette fonction. Aucun indicateur n’étant actuellement défini, ce paramètre doit être égal à zéro.

Valeur retournée

Retourne un code status qui indique la réussite ou l’échec de la fonction.

Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.

Code de retour Description
STATUS_SUCCESS
La fonction a réussi.
STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
STATUS_INVALID_HANDLE
Le handle de hachage dans le paramètre hHash n’est pas valide. Une fois que la fonction BCryptFinishHash a été appelée pour un handle de hachage, ce handle ne peut pas être réutilisé.

Remarques

Pour combiner plusieurs mémoires tampons dans le hachage ou mac, vous pouvez appeler cette fonction plusieurs fois, en passant une mémoire tampon différente à chaque fois. Pour obtenir la valeur de hachage ou mac, appelez la fonction BCryptFinishHash . Une fois que la fonction BCryptFinishHash a été appelée pour un handle spécifié, ce handle ne peut pas être réutilisé.

Selon les modes de processeur pris en charge par un fournisseur, BCryptHashData peut être appelé à partir du mode utilisateur ou du mode noyau. Les appelants en mode noyau peuvent s’exécuter à PASSIVE_LEVELIRQL ou DISPATCH_LEVEL IRQL. Si le niveau IRQL actuel est DISPATCH_LEVEL, le handle fourni dans le paramètre hHash doit être dérivé d’un handle d’algorithme retourné par un fournisseur qui a été ouvert à l’aide de l’indicateur BCRYPT_PROV_DISPATCH , et tous les pointeurs passés à la fonction BCryptHashData doivent faire référence à la mémoire non paginée (ou verrouillée).

Pour appeler cette fonction en mode noyau, utilisez Cng.lib, qui fait partie du Kit de développement de pilotes (DDK). Windows Server 2008 et Windows Vista : Pour appeler cette fonction en mode noyau, utilisez Ksecdd.lib.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête bcrypt.h
Bibliothèque Bcrypt.lib
DLL Bcrypt.dll

Voir aussi

BCryptCreateHash

BCryptFinishHash