Condividi tramite


Funzione NCryptSecretAgreement (ncrypt.h)

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

Sintassi

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

Parametri

[in] hPrivKey

Handle della chiave privata da usare per creare il valore del contratto segreto. Questa chiave e la chiave hPubKey devono provenire dallo stesso provider di archiviazione delle chiavi.

[in] hPubKey

Handle della chiave pubblica da usare per creare il valore del contratto segreto. Questa chiave e la chiave hPrivKey devono provenire dallo stesso provider di archiviazione delle chiavi.

[out] phAgreedSecret

Puntatore a una variabile NCRYPT_SECRET_HANDLE che riceve un handle che rappresenta il valore del contratto segreto. Quando questo handle non è più necessario, rilasciarlo passandolo alla funzione NCryptFreeObject .

[in] dwFlags

Flag che modificano il comportamento della funzione. Può essere zero o una combinazione di uno o più dei valori seguenti. Il set di flag validi è specifico per ogni provider di archiviazione delle chiavi. Il flag seguente si applica a tutti i provider.

Valore Significato
NCRYPT_SILENT_FLAG
Richiede che il provider di servizi chiave (KSP) non visualizzi alcuna interfaccia utente. Se il provider deve visualizzare l'interfaccia utente per il funzionamento, la chiamata ha esito negativo e il provider di servizi di configurazione deve impostare il codice di errore NTE_SILENT_CONTEXT come ultimo errore.

Valore restituito

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

I codici restituiti possibili includono, a titolo esemplificativo, quanto segue.

Codice restituito Descrizione
ERROR_SUCCESS
La funzione ha avuto esito positivo.
NTE_INVALID_HANDLE
Il parametro hPrivKey o hPubKey non è valido.
NTE_INVALID_PARAMETER
Uno o più parametri non sono validi.
NTE_NO_MEMORY
Si è verificato un errore di allocazione della memoria.

Commenti

Un servizio non deve chiamare questa funzione dalla funzione StartService. Se un servizio chiama questa funzione dalla funzione StartService, può verificarsi un deadlock e il servizio potrebbe smettere di rispondere.

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 ncrypt.h
Libreria Ncrypt.lib
DLL Ncrypt.dll

Vedi anche

NCryptFreeObject