Condividi tramite


Funzione SslGenerateMasterKey

La funzione SslGenerateMasterKey calcola la chiave master SSL ( Secure Sockets Layer Protocol ).

Sintassi

SECURITY_STATUS WINAPI SslGenerateMasterKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hPrivateKey,
  _In_  NCRYPT_KEY_HANDLE  hPublicKey,
  _Out_ NCRYPT_KEY_HANDLE  *phMasterKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  PNCryptBufferDesc  pParameterList,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _Out_ DWORD              *pcbResult,
  _In_  DWORD              dwFlags
);

Parametri

hSslProvider [in]

Handle all'istanza del provider di protocolli SSL.

hPrivateKey [in]

Handle alla chiave privata usata nello scambio.

hPublicKey [in]

Handle alla chiave pubblica usata nello scambio.

phMasterKey [out]

Puntatore all'handle alla chiave master generata.

dwProtocol [in]

Uno dei valori identificatore del protocollo ssl del provider CNG .

dwCipherSuite [in]

Uno dei valori identificatore del provider SSL CNG .

pParameterList [in]

Puntatore a una matrice di buffer NCryptBuffer che contengono informazioni usate come parte dell'operazione di scambio delle chiavi. Il set preciso di buffer dipende dal protocollo e dalla suite di crittografia usata. Al minimo, l'elenco conterrà buffer che contengono i valori casuali del client e del server.

pbOutput [out]

Indirizzo di un buffer che riceve il segreto premaster crittografato con la chiave pubblica del server. Il parametro cbOutput contiene le dimensioni di questo buffer. Se questo parametro è NULL, questa funzione restituisce le dimensioni necessarie, in byte, nel parametro DWORD a cui punta il parametro pcbResult .

Nota

Questo buffer viene usato durante l'esecuzione di uno scambio di chiavi RSA.

cbOutput [in]

Dimensioni, in byte, del buffer pbOutput .

pcbResult [out]

Puntatore a un valore DWORD in cui inserire il numero di byte scritti nel buffer pbOutput .

dwFlags [in]

Specifica se questa funzione viene usata per lo scambio di chiavi lato client o lato server.

Valore Significato
NCRYPT_SSL_CLIENT_FLAG
0x00000001
Specifica uno scambio di chiavi lato client.
NCRYPT_SSL_SERVER_FLAG
0x00000002
Specifica uno scambio di chiavi lato server.

Valore restituito

Se la funzione ha esito positivo, restituisce zero.

Se la funzione ha esito negativo, restituisce un valore di errore diverso da zero.

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

Codice/valore restituito Descrizione
NTE_NO_MEMORY
0x8009000EL
Memoria insufficiente è disponibile per allocare i buffer necessari.
NTE_INVALID_HANDLE
0x80090026L
Uno degli handle forniti non è valido.
NTE_INVALID_PARAMETER
0x80090027L
Il parametro phMasterKey o hPublicKey non è valido.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista [solo app desktop]
Server minimo supportato
Windows Server 2008 [solo app desktop]
Intestazione
Sslprovider.h
DLL
Ncrypt.dll