Fonction NCryptSecretAgreement (ncrypt.h)

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

Syntaxe

SECURITY_STATUS NCryptSecretAgreement(
  [in]  NCRYPT_KEY_HANDLE    hPrivKey,
  [in]  NCRYPT_KEY_HANDLE    hPubKey,
  [out] NCRYPT_SECRET_HANDLE *phAgreedSecret,
  [in]  DWORD                dwFlags
);

Paramètres

[in] hPrivKey

Handle de la clé privée à utiliser pour créer la valeur du contrat de secret. Cette clé et la clé hPubKey doivent provenir du même fournisseur de stockage de clés.

[in] hPubKey

Handle de la clé publique à utiliser pour créer la valeur du contrat de secret. Cette clé et la clé hPrivKey doivent provenir du même fournisseur de stockage de clés.

[out] phAgreedSecret

Pointeur vers une variable NCRYPT_SECRET_HANDLE qui reçoit un handle qui représente la valeur du contrat secret. Lorsque ce handle n’est plus nécessaire, relâchez-le en le transmettant à la fonction NCryptFreeObject .

[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. L’ensemble d’indicateurs valides est spécifique à chaque fournisseur de stockage de clés. L’indicateur suivant s’applique à tous les fournisseurs.

Valeur Signification
NCRYPT_SILENT_FLAG
Demande que le fournisseur de services de clé (KSP) n’affiche aucune interface utilisateur. Si le fournisseur doit afficher l’interface utilisateur pour fonctionner, l’appel échoue et le KSP doit définir le code d’erreur NTE_SILENT_CONTEXT comme dernière erreur.

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
ERROR_SUCCESS
La fonction a réussi.
NTE_INVALID_HANDLE
Le paramètre hPrivKey ou hPubKey n’est pas valide.
NTE_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
NTE_NO_MEMORY
Un échec d’allocation de mémoire s’est produit.

Remarques

Un service ne doit pas appeler cette fonction à partir de sa fonction StartService. Si un service appelle cette fonction à partir de sa fonction StartService, un blocage peut se produire et le service peut cesser de répondre.

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 ncrypt.h
Bibliothèque Ncrypt.lib
DLL Ncrypt.dll

Voir aussi

NCryptFreeObject