Fonction BCryptOpenAlgorithmProvider (bcrypt.h)
La fonction BCryptOpenAlgorithmProvider charge et initialise un fournisseur CNG.
Syntaxe
NTSTATUS BCryptOpenAlgorithmProvider(
[out] BCRYPT_ALG_HANDLE *phAlgorithm,
[in] LPCWSTR pszAlgId,
[in] LPCWSTR pszImplementation,
[in] ULONG dwFlags
);
Paramètres
[out] phAlgorithm
Pointeur vers une variable BCRYPT_ALG_HANDLE qui reçoit le handle du fournisseur CNG. Lorsque vous avez terminé d’utiliser ce handle, relâchez-le en le transmettant à la fonction BCryptCloseAlgorithmProvider .
[in] pszAlgId
Pointeur vers une chaîne Unicode terminée par null qui identifie l’algorithme de chiffrement demandé. Il peut s’agir de l’un des identificateurs d’algorithme CNG standard ou de l’identificateur d’un autre algorithme inscrit.
[in] pszImplementation
Pointeur vers une chaîne Unicode terminée par null qui identifie le fournisseur spécifique à charger. Il s’agit de l’alias inscrit du fournisseur primitif de chiffrement. Ce paramètre est facultatif et peut être NULL s’il n’est pas nécessaire. Si ce paramètre a la valeur NULL, le fournisseur par défaut de l’algorithme spécifié est chargé.
Voici les noms de fournisseur prédéfinis.
[in] dwFlags
Indicateurs qui modifient le comportement de la fonction. Il peut s’agir de zéro ou d’une combinaison d’une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Le fournisseur effectue l’algorithme HMAC ( Hash-Based Message Authentication Code ) avec l’algorithme de hachage spécifié. Cet indicateur est utilisé uniquement par les fournisseurs d’algorithmes de hachage. |
|
Charge le fournisseur dans le pool de mémoire non paginé. Si cet indicateur n’est pas présent, le fournisseur est chargé dans le pool de mémoire paginée. Lorsque cet indicateur est spécifié, le handle retourné ne doit pas être fermé avant que tous les objets dépendants aient été libérés.
Note Cet indicateur est uniquement pris en charge en mode noyau et permet de traiter les opérations suivantes sur le fournisseur au niveau Dispatch. Si le fournisseur ne prend pas en charge l’appel au niveau de la répartition, il retourne une erreur lors de l’ouverture à l’aide de cet indicateur.
|
|
Crée un objet de hachage réutilisable. L’objet peut être utilisé pour une nouvelle opération de hachage immédiatement après l’appel de BCryptFinishHash. Pour plus d’informations, consultez Création d’un hachage avec CNG.
Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista : Cet indicateur n’est pas pris en charge. |
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. |
|
Aucun fournisseur n’a été trouvé pour l’ID d’algorithme spécifié. |
|
Un ou plusieurs paramètres ne sont pas valides. |
|
Un échec d’allocation de mémoire s’est produit. |
Remarques
En raison du nombre et du type d’opérations nécessaires pour rechercher, charger et initialiser un fournisseur d’algorithme, la fonction BCryptOpenAlgorithmProvider est une fonction relativement longue. Pour cette raison, nous vous recommandons de mettre en cache tous les handles de fournisseur d’algorithmes que vous utiliserez plusieurs fois, plutôt que d’ouvrir et de fermer les fournisseurs d’algorithmes encore et encore.
BCryptOpenAlgorithmProvider peut être appelé en mode utilisateur ou en mode noyau. Les appelants en mode noyau doivent s’exécuter à PASSIVE_LEVELIRQL.
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.
À compter de Windows 10, le GNC ne suit plus chaque mise à jour de la configuration de chiffrement. Certaines modifications, telles que l’ajout d’un nouveau fournisseur par défaut ou la modification de l’ordre de préférence des fournisseurs d’algorithmes, peuvent nécessiter un redémarrage. Pour cette raison, vous devez redémarrer avant d’appeler BCryptOpenAlgorithmProvider avec n’importe quel fournisseur nouvellement configuré.
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