BCryptFinishHash, fonction (bcrypt.h)
La fonction BCryptFinishHash récupère la valeur de hachage ou de code d’authentification de message (MAC) pour les données accumulées à partir des appels précédents à BCryptHashData.
Syntaxe
NTSTATUS BCryptFinishHash(
[in, out] BCRYPT_HASH_HANDLE hHash,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[in] ULONG dwFlags
);
Paramètres
[in, out] hHash
Handle de l’objet de hachage ou MAC à utiliser pour calculer le hachage ou mac. Ce handle est obtenu en appelant la fonction BCryptCreateHash . Une fois cette fonction appelée, le handle de hachage passé à cette fonction ne peut plus être utilisé à nouveau, sauf dans un appel à BCryptDestroyHash.
[out] pbOutput
Pointeur vers une mémoire tampon qui reçoit la valeur de hachage ou MAC. Le paramètre cbOutput contient la taille de cette mémoire tampon.
[in] cbOutput
Taille, en octets, de la mémoire tampon pbOutput . Cette taille doit correspondre exactement à la taille de la valeur de hachage ou MAC.
La taille peut être obtenue en appelant la fonction BCryptGetProperty pour obtenir la propriété BCRYPT_HASH_LENGTH . Cela fournit la taille de la valeur de hachage ou MAC pour l’algorithme spécifié.
[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 |
---|---|
|
La fonction a réussi. |
|
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é. |
|
Un ou plusieurs paramètres ne sont pas valides. Cela inclut le cas où cbOutput n’a pas la même taille que le hachage. |
Remarques
Selon les modes processeur pris en charge par un fournisseur, BCryptFinishHash 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 BCryptFinishHash 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 pilote (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 |