Fonction BCryptGenerateSymmetricKey (bcrypt.h)
La fonction BCryptGenerateSymmetricKey crée un objet clé à utiliser avec un algorithme de chiffrement de clé symétrique à partir d’une clé fournie.
Syntaxe
NTSTATUS BCryptGenerateSymmetricKey(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[out] BCRYPT_KEY_HANDLE *phKey,
[out, optional] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] PUCHAR pbSecret,
[in] ULONG cbSecret,
[in] ULONG dwFlags
);
Paramètres
[in, out] hAlgorithm
Handle d’un fournisseur d’algorithme créé avec la fonction BCryptOpenAlgorithmProvider . L’algorithme spécifié lors de la création du fournisseur doit prendre en charge le chiffrement à clé symétrique.
[out] phKey
Pointeur vers un BCRYPT_KEY_HANDLE qui reçoit le handle de la clé. Ce handle est utilisé dans les fonctions suivantes qui nécessitent une clé, comme BCryptEncrypt. Ce handle doit être libéré lorsqu’il n’est plus nécessaire en le transmettant à la fonction BCryptDestroyKey .
[out, optional] pbKeyObject
Pointeur vers une mémoire tampon qui reçoit l’objet clé. Le paramètre cbKeyObject 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 clé pour l’algorithme spécifié.
Cette mémoire ne peut être libérée qu’après la destruction du handle de clé phKey .
Si la valeur de ce paramètre est NULL et que la valeur du paramètre cbKeyObject est égale à zéro, la mémoire de l’objet clé est allouée et libérée par cette fonction. Windows 7 : Cette fonctionnalité de gestion de la mémoire est disponible à partir de Windows 7.
[in] cbKeyObject
Taille, en octets, de la mémoire tampon pbKeyObject .
Si la valeur de ce paramètre est zéro et que la valeur du paramètre pbKeyObject est NULL, la mémoire de l’objet clé est allouée et libérée par cette fonction. Windows 7 : Cette fonctionnalité de gestion de la mémoire est disponible à partir de Windows 7.
[in] pbSecret
Pointeur vers une mémoire tampon qui contient la clé à partir de laquelle créer l’objet clé. Le paramètre cbSecret contient la taille de cette mémoire tampon. Il s’agit normalement d’un hachage d’un mot de passe ou d’autres données reproductibles. Si les données transmises dépassent la taille de clé cible, les données sont tronquées et l’excédent est ignoré.
[in] cbSecret
Taille, en octets, de la mémoire tampon pbSecret .
[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 key spécifiée par le paramètre cbKeyObject n’est pas suffisamment grande pour contenir l’objet clé. |
|
Le handle d’algorithme dans le paramètre hAlgorithm n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
Remarques
Selon les modes de processeur pris en charge par un fournisseur, BCryptGenerateSymmetricKey peut être appelé en mode utilisateur ou en 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 hAlgorithm doit avoir été ouvert à l’aide de l’indicateur BCRYPT_PROV_DISPATCH , et tous les pointeurs passés à la fonction BCryptGenerateSymmetricKey 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 |
Voir aussi
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