Share via


Funzione SslComputeFinishedHash

La funzione SslComputeFinishedHash calcola l'hash inviato nel messaggio completato dell'handshake SSL (Secure Sockets Layer Protocol ).

Sintassi

SECURITY_STATUS WINAPI SslComputeFinishedHash(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hMasterKey,
  _In_  NCRYPT_HASH_HANDLE hHandshakeHash,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _In_  DWORD              dwFlags
);

Parametri

hSslProvider [in]

Handle dell'istanza del provider del protocollo SSL.

hMasterKey [in]

Handle dell'oggetto chiave master .

hHandshakeHash [in]

Handle dell'hash dei messaggi di handshake.

pbOutput [out]

Puntatore a un buffer che riceve l'hash per il messaggio di fine.

cbOutput [in]

Lunghezza, in byte, del buffer pbOutput .

dwFlags [in]

Una delle costanti seguenti.

Valore Significato
NCRYPT_SSL_CLIENT_FLAG
0x00000001
Specifica che si tratta di una chiamata client.
NCRYPT_SSL_SERVER_FLAG
0x00000002
Specifica che si tratta di una chiamata al 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.

Codice/valore restituito Descrizione
NTE_INVALID_HANDLE
2148073510 (0x80090026)
Uno degli handle forniti non è valido.

Commenti

La funzione SslComputeFinishedHash è una delle tre funzioni usate per generare un hash da usare durante l'handshake SSL.

  1. La funzione SslCreateHandshakeHash viene chiamata per ottenere un handle hash.
  2. La funzione SslHashHandshake viene chiamata un numero qualsiasi di volte con l'handle hash per aggiungere dati all'hash.
  3. La funzione SslComputeFinishedHash viene chiamata con l'handle hash per ottenere il digest dei dati con hash.

Il valore hash viene calcolato eseguendo l'hashing del segreto master con un hash di tutti i messaggi di handshake precedenti inviati o ricevuti.

Il valore di cbOutput determina la lunghezza dei dati hash. Quando viene usato il protocollo TLS (Transport Layer Security Protocol ) 1.0, deve essere sempre 12 (byte). Per altre informazioni, vedere Protocollo TLS versione 1.0.

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