BCryptExportKey, fonction (bcrypt.h)
La fonction BCryptExportKey exporte une clé vers un objet BLOB de mémoire qui peut être conservée pour une utilisation ultérieure.
Syntaxe
NTSTATUS BCryptExportKey(
[in] BCRYPT_KEY_HANDLE hKey,
[in] BCRYPT_KEY_HANDLE hExportKey,
[in] LPCWSTR pszBlobType,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Paramètres
[in] hKey
Handle de la clé à exporter.
[in] hExportKey
Handle de la clé avec laquelle envelopper la clé exportée. Utilisez ce paramètre lors de l’exportation de objets blob de type BCRYPT_AES_WRAP_KEY_BLOB ; sinon, définissez-le sur NULL.
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 à exporter. Il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Exportez une clé encapsulée AES. Le paramètre hExportKey doit référencer un pointeur BCRYPT_KEY_HANDLE valide vers la clé de chiffrement de clé, et la clé représentée par le paramètre hKey doit être un multiple de 8 octets de long.
Windows Server 2008 et Windows Vista : Ce type d’objet BLOB n’est pas pris en charge. |
|
Exportez une Diffie-Hellman paire de clés publique/privée. La mémoire tampon pbOutput reçoit une structure BCRYPT_DH_KEY_BLOB immédiatement suivie des données clés. |
|
Exportez une clé publique Diffie-Hellman. La mémoire tampon pbOutput reçoit une structure BCRYPT_DH_KEY_BLOB immédiatement suivie des données clés. |
|
Exportez une paire de clés publiques/privées DSA. La mémoire tampon pbOutput reçoit une structure BCRYPT_DSA_KEY_BLOB ou BCRYPT_DSA_KEY_BLOB_V2 immédiatement suivie des données clés. BCRYPT_DSA_KEY_BLOB est utilisé pour les longueurs de clé comprises entre 512 et 1 024 bits. BCRYPT_DSA_KEY_BLOB_V2 est utilisé pour les longueurs de clé supérieures à 1 024 bits, mais inférieures ou égales à 3 072 bits.
Windows 8 : la prise en charge de BCRYPT_DSA_KEY_BLOB_V2 commence. |
|
Exportez une clé publique DSA. La mémoire tampon pbOutput reçoit une structure BCRYPT_DSA_KEY_BLOB ou BCRYPT_DSA_KEY_BLOB_V2 immédiatement suivie des données clés. BCRYPT_DSA_KEY_BLOB est utilisé pour les longueurs de clé comprises entre 512 et 1 024 bits. BCRYPT_DSA_KEY_BLOB_V2 est utilisé pour les longueurs de clé supérieures à 1 024 bits, mais inférieures ou égales à 3 072 bits.
Windows 8 : la prise en charge de BCRYPT_DSA_KEY_BLOB_V2 commence. |
|
Exportez une clé privée ECC (Elliptic Curve Cryptography). La mémoire tampon pbOutput reçoit une structure BCRYPT_ECCKEY_BLOB immédiatement suivie des données clés. |
|
Exportez une clé publique ECC. La mémoire tampon pbOutput reçoit une structure BCRYPT_ECCKEY_BLOB immédiatement suivie des données clés. |
|
Exportez une clé symétrique vers un objet BLOB de données. La mémoire tampon pbOutput reçoit une structure BCRYPT_KEY_DATA_BLOB_HEADER immédiatement suivie du blob de clé. |
|
Exportez une clé symétrique dans un format spécifique à un fournisseur de services de chiffrement unique (CSP). Les objets BLOB opaques ne sont pas transférables et doivent être importés à l’aide du même fournisseur de solutions cloud qui a généré l’objet BLOB. Les objets BLOB opaques sont destinés uniquement à être utilisés pour le transfert interprocessus de clés et ne conviennent pas pour être conservés et lus entre les versions d’un fournisseur. |
|
Exportez 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 de la structure BCRYPT_KEY_BLOB . |
|
Exportez 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 de la structure BCRYPT_KEY_BLOB . |
|
Exportez une paire de clés publiques/privées RSA complète. La mémoire tampon pbOutput reçoit une structure BCRYPT_RSAKEY_BLOB immédiatement suivie des données clés. Cet objet BLOB inclut des éléments clés supplémentaires par rapport au type BCRYPT_RSAPRIVATE_BLOB . |
|
Exportez une paire de clés publiques/privées RSA. La mémoire tampon pbOutput reçoit une structure BCRYPT_RSAKEY_BLOB immédiatement suivie des données clés. |
|
Exportez une clé publique RSA. La mémoire tampon pbOutput reçoit une structure BCRYPT_RSAKEY_BLOB immédiatement suivie des données clés. |
|
Exportez un objet BLOB de clé privée Diffie-Hellman version 3 hérité qui contient une Diffie-Hellman paire de clés publique/privée qui peut être importée à l’aide de CryptoAPI. |
|
Exportez un objet BLOB de clé publique Diffie-Hellman version 3 hérité qui contient une clé publique Diffie-Hellman qui peut être importée à l’aide de CryptoAPI. |
|
Exportez une paire de clés publiques/privées DSA sous un formulaire qui peut être importé à l’aide de CryptoAPI. |
|
Exportez une clé publique DSA dans un formulaire qui peut être importé à l’aide de CryptoAPI. |
|
Exportez une clé privée DSA version 2 sous un formulaire qui peut être importé à l’aide de CryptoAPI. |
|
Exportez une paire de clés publiques/privées RSA sous un formulaire qui peut être importé à l’aide de CryptoAPI. |
|
Exportez une clé publique RSA sous un formulaire qui peut être importé à l’aide de CryptoAPI. |
[out] pbOutput
Adresse d’une mémoire tampon qui reçoit l’objet BLOB de clé. Le paramètre cbOutput contient la taille de cette mémoire tampon. Si ce paramètre a la valeur NULL, cette fonction place la taille requise, en octets, dans le ULONG pointé vers le paramètre pcbResult .
[in] cbOutput
Contient la taille, en octets, de la mémoire tampon pbOutput .
[out] pcbResult
Pointeur vers un ULONG qui reçoit le nombre d’octets qui ont été copiés dans la mémoire tampon pbOutput . Si le paramètre pbOutput a la valeur NULL, cette fonction place la taille requise, en octets, dans l’ULONG pointé par ce paramètre.
[in] dwFlags
Ensemble d’indicateurs qui modifient le comportement de cette fonction. Aucun indicateur n’est défini pour cette fonction.
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 spécifiée par le paramètre cbOutput n’est pas assez grande pour contenir le texte de chiffrement. |
|
Le handle de clé dans le paramètre hKey n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
|
Le type d’objet BLOB spécifié n’est pas pris en charge par le fournisseur. |
Remarques
Selon les modes de processeur pris en charge par un fournisseur, BCryptExportKey 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 hKey doit être dérivé d’un handle d’algorithme retourné par un fournisseur ouvert avec l’indicateur BCRYPT_PROV_DISPATCH , et tous les pointeurs passés à la fonction BCryptExportKey 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