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 |
---|---|
|
Memoria insufficiente è disponibile per allocare i buffer necessari. |
|
Uno degli handle forniti non è valido. |
|
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 |
|
DLL |
|