Partager via


BCryptDuplicateHash, fonction (bcrypt.h)

La fonction BCryptDuplicateHash duplique une fonction de hachage ou de code d’authentification de message (MAC). L’objet dupliqué contient tous les états et données contenus dans l’objet d’origine au point de duplication.

Syntaxe

NTSTATUS BCryptDuplicateHash(
  [in]  BCRYPT_HASH_HANDLE hHash,
  [out] BCRYPT_HASH_HANDLE *phNewHash,
  [out] PUCHAR             pbHashObject,
  [in]  ULONG              cbHashObject,
  [in]  ULONG              dwFlags
);

Paramètres

[in] hHash

Handle de l’objet hash ou MAC à dupliquer.

[out] phNewHash

Pointeur vers une valeur BCRYPT_HASH_HANDLE qui reçoit le handle qui représente le hachage en double ou l’objet MAC.

[out] pbHashObject

Pointeur vers une mémoire tampon qui reçoit le hachage en double ou l’objet MAC. Le paramètre cbHashObject contient la taille de cette mémoire tampon. La taille requise de cette mémoire tampon peut être obtenue en appelant la fonction BCryptGetProperty pour obtenir la propriété BCRYPT_OBJECT_LENGTH. Cela fournit la taille de l’objet de hachage pour l’algorithme spécifié.

Lorsque le handle de hachage dupliqué est libéré, libérez cette mémoire.

[in] cbHashObject

Taille, en octets, de la mémoire tampon pbHashObject.

[in] dwFlags

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

Valeur de retour

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

Les codes de retour possibles incluent, mais ne sont pas limités à, les éléments suivants.

Retourner le code Description
STATUS_SUCCESS
La fonction a réussi.
STATUS_BUFFER_TOO_SMALL
La taille de l’objet de hachage spécifié par le paramètre cbHashObject n’est pas suffisamment grande pour contenir l’objet de hachage.
STATUS_INVALID_HANDLE
Le handle de hachage dans le paramètre hHash n’est pas valide.
STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.

Remarques

Cette fonction est utile lors de l’informatique d’un hachage ou d’un MAC sur un bloc de données communes. Une fois les données communes traitées, l’objet hash ou MAC peut être dupliqué, puis les données uniques peuvent être ajoutées aux objets individuels.

Selon les modes de processeur pris en charge par un fournisseur, BCryptDuplicateHash peut être appelé en mode utilisateur ou en mode noyau. Les appelants en mode noyau peuvent s’exécuter à PASSIVE_LEVEL IRQL 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 ouvert à l’aide de l’indicateur BCRYPT_PROV_DISPATCH, et tous les pointeurs passés à la fonction BCryptDestroyKey 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête bcrypt.h
bibliothèque Bcrypt.lib
DLL Bcrypt.dll