Funzione BCryptSecretAgreement (bcrypt.h)

La funzione BCryptSecretAgreement crea un valore del contratto segreto da una chiave privata e pubblica.

Sintassi

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

Parametri

[in] hPrivKey

Handle della chiave privata da usare per creare il valore del contratto segreto. Questa chiave e la chiave hPubKey devono venire dallo stesso provider di algoritmi crittografici CNG.

[in] hPubKey

Handle della chiave pubblica da usare per creare il valore del contratto segreto. Questa chiave e la chiave hPrivKey devono venire dallo stesso provider di algoritmi crittografici CNG.

[out] phAgreedSecret

Puntatore a un BCRYPT_SECRET_HANDLE che riceve un handle che rappresenta il valore del contratto segreto. Questo handle deve essere rilasciato passandolo alla funzione BCryptDestroySecret quando non è più necessario.

[in] dwFlags

Set di flag che modificano il comportamento di questa funzione. Per questa funzione non sono definiti flag.

Valore restituito

Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.

I codici restituiti possibili includono, ma non sono limitati a, i seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
La funzione ha avuto esito positivo.
STATUS_INVALID_HANDLE
L'handle della chiave nel parametro hPrivKey o hPubKey non è valido.
STATUS_INVALID_PARAMETER
Uno o più parametri non sono validi.
STATUS_NOT_SUPPORTED
L'handle della chiave nel parametro hPrivKey non è una chiave Diffie-Hellman.

Commenti

A seconda delle modalità di processore supportate da un provider, è possibile chiamare BCryptSecretAgreement dalla modalità utente o dalla modalità kernel. I chiamanti in modalità kernel possono essere eseguiti in PASSIVE_LEVELIRQL o DISPATCH_LEVEL IRQL. Se il livello IRQL corrente è DISPATCH_LEVEL, gli handle forniti nei parametri hPrivKey e hPubKey devono essere derivati da un handle di algoritmo restituito da un provider aperto usando il flag BCRYPT_PROV_DISPATCH e tutti i puntatori passati alla funzione BCryptSecretAgreement devono fare riferimento a memoria non di pagina (o bloccata).

Per chiamare questa funzione in modalità kernel, usare Cng.lib, che fa parte del Driver Development Kit (DDK). Windows Server 2008 e Windows Vista: Per chiamare questa funzione in modalità kernel, usare Ksecdd.lib.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione bcrypt.h
Libreria Bcrypt.lib
DLL Bcrypt.dll

Vedi anche

BCryptDestroySecret