Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonction
Syntaxe
NTSTATUS BCryptImportKeyPair(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[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, out] hImportKey
Ce paramètre n’est actuellement pas utilisé et doit être 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 |
|---|---|
| BCRYPT_DH_PRIVATE_BLOB | Le BLOB est une paire de clés publique/privée Diffie-Hellman BLOB. La mémoire tampon pbInput doit contenir une structure BCRYPT_DH_KEY_BLOB immédiatement suivie des données clés. |
| BCRYPT_DH_PUBLIC_BLOB | L’objet BLOB est un Diffie-Hellman blob de clé publique. La mémoire tampon pbInput doit contenir une structure BCRYPT_DH_KEY_BLOB immédiatement suivie des données clés. |
| BCRYPT_DSA_PRIVATE_BLOB | L’objet BLOB est une paire de clés publique/privée DSA. La mémoire tampon pbInput Windows 8 : La prise en charge de BCRYPT_DSA_KEY_BLOB_V2 commence. |
| BCRYPT_DSA_PUBLIC_BLOB | L’objet BLOB est un objet BLOB de clé publique DSA. La mémoire tampon pbInput Windows 8 : La prise en charge de BCRYPT_DSA_KEY_BLOB_V2 commence. |
| BCRYPT_ECCPRIVATE_BLOB | L’objet BLOB est un chiffrement de courbe elliptique (ECC) clé privée. La mémoire tampon pbInput doit contenir une structure BCRYPT_ECCKEY_BLOB immédiatement suivie des données clés. |
| BCRYPT_ECCPUBLIC_BLOB | L’objet BLOB est une clé publique ECC. La mémoire tampon pbInput doit contenir une structure BCRYPT_ECCKEY_BLOB immédiatement suivie des données clés. |
| BCRYPT_MLKEM_PUBLIC_BLOB | Le BLOB est un objet BLOB ML-KEM qui fournit l’importation et l’exportation de clés d’encapsulation codées en octets standard ML-KEM par FIPS 203. La mémoire tampon pbInput doit contenir une structure BCRYPT_MLKEM_KEY_BLOB contenant la clé d’encapsulation KEM codée en octets, BCRYPT_MLKEM_PUBLIC_MAGIC et ML-KEM jeu de paramètres. |
| BCRYPT_MLKEM_PRIVATE_BLOB | L’objet BLOB est un objet blob ML-KEM qui fournit l’importation et l’exportation de clés de décapsulation codées en octets standard ML-KEM par FIPS 203. La mémoire tampon pbInput doit contenir une structure BCRYPT_MLKEM_KEY_BLOB contenant la clé de décapsulation KEM codée en octets, BCRYPT_MLKEM_PRIVATE_MAGIC et ML-KEM jeu de paramètres. |
| BCRYPT_MLKEM_PRIVATE_SEED_BLOB | Le BLOB est un objet blob ML-KEM qui fournit l’importation et l’exportation de graines de ML-KEM par FIPS 203. La mémoire tampon pbInput doit contenir une structure BCRYPT_MLKEM_KEY_BLOB contenant le jeu de paramètres KEM seed, BCRYPT_MLKEM_SEED_MAGIC et ML-KEM. |
| BCRYPT_PQDSA_PUBLIC_BLOB | L’objet BLOB est un objet BLOB ML-DSA, SLH-DSA, LMS ou XMSS qui fournit l’importation et l’exportation de clés publiques de signature numérique PQ par FIPS 204 et 205. La mémoire tampon pbInput doit contenir une structure BCRYPT_PQDSA_KEY_BLOB contenant le matériel clé, la magie publique et le jeu de paramètres PQ. |
| BCRYPT_PQDSA_PRIVATE_BLOB | L’objet BLOB est un objet BLOB ML-DSA, SLH-DSA, LMS ou XMSS qui fournit l’importation et l’exportation de clés privées de signature numérique PQ par FIPS 204 et 205. La mémoire tampon pbInput doit contenir une structure BCRYPT_PQDSA_KEY_BLOB contenant le matériel clé, la magie privée et le jeu de paramètres PQ. |
| BCRYPT_PQDSA_PRIVATE_SEED_BLOB | L’objet BLOB est un objet BLOB ML-DSA, SLH-DSA, LMS ou XMSS qui fournit l’importation et l’exportation de graines privées de signature numérique PQ par FIPS 204 et 205. La mémoire tampon pbInput doit contenir une structure BCRYPT_PQDSA_KEY_BLOB contenant la valeur initiale, la magie de la valeur de départ privée et le jeu de paramètres PQ. |
| BCRYPT_PRIVATE_KEY_BLOB | L’objet BLOB est une clé privée générique de n’importe quel type. La clé privée ne contient pas nécessairement la clé publique. Le type de clé dans cet objet BLOB est déterminé par le membre magic |
| BCRYPT_PUBLIC_KEY_BLOB | L’objet BLOB est une clé publique générique de n’importe quel type. Le type de clé dans cet objet BLOB est déterminé par le membre magic |
| BCRYPT_RSAPRIVATE_BLOB | L’objet BLOB est une paire de clés publique/privée RSA. La mémoire tampon pbInput doit contenir une structure BCRYPT_RSAKEY_BLOB immédiatement suivie des données clés. |
| BCRYPT_RSAPUBLIC_BLOB | Le BLOB est un objet BLOB de clé publique RSA. La mémoire tampon pbInput doit contenir une structure BCRYPT_RSAKEY_BLOB immédiatement suivie des données clés. |
| LEGACY_DH_PUBLIC_BLOB | Le BLOB est un objet BLOB de clé publique Diffie-Hellman qui a été exporté à l’aide de CryptoAPI. Le fournisseur primitif Microsoft ne prend pas en charge l’importation de ce type BLOB. |
| LEGACY_DH_PRIVATE_BLOB | L’objet BLOB est un objet blob de clé privée Diffie-Hellman version 3 héritée qui contient une paire de clés publique/privée Diffie-Hellman exportée à l’aide de CryptoAPI. |
| LEGACY_DSA_PRIVATE_BLOB | Le BLOB est une paire de clés publique/privée DSA exportée à l’aide de CryptoAPI. |
| LEGACY_DSA_PUBLIC_BLOB | Le BLOB est un objet BLOB de clé publique DSA qui a été exporté à l’aide de CryptoAPI. Le fournisseur primitif Microsoft ne prend pas en charge l’importation de ce type BLOB. |
| LEGACY_DSA_V2_PRIVATE_BLOB | L’objet BLOB est une clé privée DSA version 2 dans un formulaire qui peut être importé à l’aide de CryptoAPI. |
| LEGACY_RSAPRIVATE_BLOB | Le BLOB est une paire de clés publique/privée RSA qui a été exportée à l’aide de CryptoAPI. |
| LEGACY_RSAPUBLIC_BLOB | Le BLOB est un OBJET BLOB de clé publique RSA qui a été exporté à l’aide de CryptoAPI. Le fournisseur primitif Microsoft ne prend pas en charge l’importation de ce type BLOB. |
[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 BCryptSignHash. Ce handle doit être libéré lorsqu’il n’est plus nécessaire en le transmettant à la fonction BCryptDestroyKey.
[in] pbInput
Adresse d’une mémoire tampon qui contient le blob de clé
[in] cbInput
Taille, en octets, de la mémoire tampon pbInput
[in] dwFlags
Ensemble d’indicateurs qui modifient le comportement de cette fonction. Il peut s’agir de zéro ou de la valeur suivante.
| Valeur | Signification |
|---|---|
| BCRYPT_NO_KEY_VALIDATION | Désactivez les tests auto-tests FIPS applicables. |
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 | Descriptif |
|---|---|
| STATUS_SUCCESS | La fonction a réussi. |
| STATUS_INVALID_BUFFER_SIZE | Si le pbInput de mémoire tampon n’est pas de la taille correcte pour la combinaison du jeu de paramètres ML-KEM associé à hAlgorithm et pour le type d’objet blob importé. |
| STATUS_INVALID_HANDLE | Le handle d’algorithme dans le paramètre hAlgorithm n’est pas valide. |
| STATUS_INVALID_PARAMETER | Un ou plusieurs paramètres ne sont pas valides. |
| STATUS_NOT_SUPPORTED | 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 de processeur pris en charge par un fournisseur, BCryptImportKeyPair 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
L’appelant doit libérer hKey avec BCryptDestroyKey lorsque la clé n’est plus utilisé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 | Fenêtres |
| d’en-tête | bcrypt.h |
| bibliothèque | Bcrypt.lib |
| DLL | Bcrypt.dll |