BCryptImportKey, fonction (bcrypt.h)
La fonction BCryptImportKey importe une clé symétrique à partir d’une clé BLOB. La fonction BCryptImportKeyPair
Syntaxe
NTSTATUS BCryptImportKey(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, optional] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[out, optional] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Paramètres
[in] hAlgorithm
Handle du fournisseur d’algorithmes à importer la clé. Ce handle est obtenu en appelant la fonction BCryptOpenAlgorithmProvider.
[in, optional] hImportKey
Handle de la clé de chiffrement de clé nécessaire pour décompresser le blob de clé dans le paramètre pbInput.
Windows Server 2008 et Windows Vista : Ce paramètre n’est pas utilisé et doit être défini sur NULL.
[in] pszBlobType
Chaîne Unicode terminée par null qui contient un identificateur qui spécifie le type d’objet BLOB contenu dans la mémoire tampon pbInput. Il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Importez une clé symétrique à partir d’un objet BLOB de clé AES encapsulée. Le paramètre hImportKey Windows Server 2008 et Windows Vista : ce type d’objet blob n’est pas pris en charge. |
|
Importez une clé symétrique à partir d’un objet BLOB de données. Le paramètre pbInput est un pointeur vers une structure de BCRYPT_KEY_DATA_BLOB_HEADER immédiatement suivie de l’objet BLOB clé. |
|
Importez un objet BLOB de clé symétrique dans un format spécifique à un seul fournisseur de solutions Cloud. Les objets blob opaques ne sont pas transférables et doivent être importés à l’aide du même csp que celui qui a généré l’objet BLOB. Les objets blob opaques sont uniquement destinés à être utilisés pour le transfert interprocesseur de clés et ne conviennent pas pour être conservés et lus dans les versions d’un fournisseur. |
[out] phKey
Pointeur vers un BCRYPT_KEY_HANDLE qui reçoit le handle de la clé importé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, optional] pbKeyObject
Pointeur vers une mémoire tampon qui reçoit l’objet de clé importé. 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
[in] cbKeyObject
Taille, en octets, de la mémoire tampon pbKeyObject
[in] pbInput
Adresse d’une mémoire tampon qui contient le blob de clé à importer. Le paramètre cbInput contient la taille de cette mémoire tampon. Le paramètre pszBlobType spécifie le type de blob de clé que contient cette mémoire tampon.
[in] cbInput
Taille, en octets, de la mémoire tampon pbInput
[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 d’algorithme dans le paramètre hAlgorithm n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
|
Le fournisseur d’algorithmes spécifié par le paramètre hAlgorithm ne prend pas en charge le type BLOB spécifié par le paramètre pszBlobType. |
Remarques
Selon les modes processeur pris en charge par un fournisseur, BCryptImportKey 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 |