Partager via


BCryptSecretAgreement, fonction (bcrypt.h)

La fonction BCryptSecretAgreement crée une valeur d’accord secret à partir d’une clé privée et publique.

Syntaxe

NTSTATUS BCryptSecretAgreement(
  [in]  BCRYPT_KEY_HANDLE    hPrivKey,
  [in]  BCRYPT_KEY_HANDLE    hPubKey,
  [out] BCRYPT_SECRET_HANDLE *phAgreedSecret,
  [in]  ULONG                dwFlags
);

Paramètres

[in] hPrivKey

Handle de la clé privée à utiliser pour créer la valeur du contrat secret. Cette clé et la clé hPubKey doivent provenir du même fournisseur d’algorithmes de chiffrement CNG.

[in] hPubKey

Handle de la clé publique à utiliser pour créer la valeur du contrat secret. Cette clé et la clé hPrivKey doivent provenir du même fournisseur d’algorithmes de chiffrement CNG.

[out] phAgreedSecret

Pointeur vers un BCRYPT_SECRET_HANDLE qui reçoit un handle qui représente la valeur du contrat secret. Ce handle doit être libéré en le transmettant à la fonction BCryptDestroySecret lorsqu’il n’est plus nécessaire.

[in] dwFlags

Ensemble d’indicateurs qui modifient le comportement de cette fonction. Aucun indicateur n’est défini pour cette fonction.

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
STATUS_SUCCESS
La fonction a réussi.
STATUS_INVALID_HANDLE
Le handle de clé dans le paramètre hPrivKey ou hPubKey n’est pas valide.
STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
STATUS_NOT_SUPPORTED
Le handle de clé dans le paramètre hPrivKey n’est pas une clé Diffie-Hellman.

Remarques

Selon les modes de processeur pris en charge par un fournisseur, BCryptSecretAgreement peut être appelé à partir du mode utilisateur ou du mode noyau. Les appelants en mode noyau peuvent s’exécuter à PASSIVE_LEVEL IRQL ou DISPATCH_LEVEL IRQL. Si le niveau IRQL actuel est DISPATCH_LEVEL, les handles fournis dans le hPrivKey et les paramètres hPubKey doivent être dérivés d’un handle d’algorithme retourné par un fournisseur ouvert à l’aide de l’indicateur BCRYPT_PROV_DISPATCH, et tous les pointeurs passés à la fonction BCryptSecretAgreement doivent faire référence à la mémoire nonpage (ou verrouillé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 Windows
d’en-tête bcrypt.h
bibliothèque Bcrypt.lib
DLL Bcrypt.dll

Voir aussi

BCryptDestroySecret