BCryptDuplicateHash, fonction (bcrypt.h)
La fonction BCryptDuplicateHash duplique un objet MAC (Code de hachage ou code d’authentification de message ) existant. 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 de hachage 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 dupliqué 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 en double 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’é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. |
|
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. |
|
Le handle de hachage dans le paramètre hHash n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
Remarques
Cette fonction est utile lors du calcul d’un hachage ou d’un MAC sur un bloc de données courantes. Une fois les données communes traitées, l’objet de hachage 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é à 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 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.
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 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour