BCryptDuplicateKey, fonction (bcrypt.h)
La fonction BCryptDuplicateKey crée un doublon d’une clé symétrique .
Syntaxe
NTSTATUS BCryptDuplicateKey(
[in] BCRYPT_KEY_HANDLE hKey,
[out] BCRYPT_KEY_HANDLE *phNewKey,
[out] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] ULONG dwFlags
);
Paramètres
[in] hKey
Handle de la clé à dupliquer. Il doit s’agir d’un handle vers une clé symétrique.
[out] phNewKey
Pointeur vers une variable BCRYPT_KEY_HANDLE qui reçoit le handle de la clé dupliquée. Ce handle est utilisé dans les fonctions suivantes qui nécessitent une clé, telle que BCryptEncrypt. Ce handle doit être libéré lorsqu’il n’est plus nécessaire en le transmettant à la fonction BCryptDestroyKey.
[out] pbKeyObject
Pointeur vers une mémoire tampon qui reçoit l’objet de clé en double. 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é phNewKey
[in] cbKeyObject
Taille, en octets, de la mémoire tampon pbKeyObject
[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 |
---|---|
|
La fonction a réussi. |
|
La taille de l’objet clé spécifié par le paramètre cbKeyObject n’est pas suffisamment grande pour contenir l’objet clé. |
|
Le handle de clé dans le paramètre hKey |
|
Un ou plusieurs paramètres ne sont pas valides. |
Remarques
Selon les modes processeur pris en charge par un fournisseur, BCryptDuplicateKey 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
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 |