Condividi tramite


Funzione SslComputeClientAuthHash

La funzione SslComputeClientAuthHash calcola un hash da usare durante l'autenticazione del certificato .

Sintassi

SECURITY_STATUS WINAPI SslComputeClientAuthHash(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hMasterKey,
  _In_  NCRYPT_HASH_HANDLE hHandshakeHash,
  _In_  LPCWSTR            pszAlgId,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _Out_ DWORD              *pcbResult,
  _In_  DWORD              dwFlags
);

Parametri

hSslProvider [in]

Handle dell'istanza del provider del protocollo SSL (Secure Sockets Layer Protocol).

hMasterKey [in]

Handle dell'oggetto chiave master .

hHandshakeHash [in]

Handle dell'hash dell'handshake calcolato finora.

pszAlgId [in]

Puntatore a una stringa Unicode con terminazione Null che identifica l'algoritmo di crittografia richiesto. Può trattarsi di uno degli identificatori di algoritmo CNG standard o dell'identificatore per un altro algoritmo registrato.

pbOutput [out]

Indirizzo di un buffer che riceve il BLOB della chiave. Il parametro cbOutput contiene le dimensioni di questo buffer. Se questo parametro è NULL, questa funzione inserisce le dimensioni necessarie, in byte, nel DWORD a cui punta il parametro pcbResult .

cbOutput [in]

Lunghezza, in byte, del buffer pbOutput .

pcbResult [out]

Puntatore a un valore DWORD che specifica la lunghezza, in byte, dell'hash scritto nel buffer pbOutput .

dwFlags [in]

Questo parametro è riservato per usi futuri.

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, a titolo esemplificativo, quanto segue.

Codice/valore restituito Descrizione
NTE_INVALID_HANDLE
0x80090026L
Uno degli handle forniti non è valido.

Commenti

La funzione SslComputeClientAuthHash calcola l'hash inviato nel messaggio di verifica del certificato dell'handshake SSL. Il valore hash viene calcolato creando un hash contenente il segreto master con un hash di tutti i messaggi di handshake precedenti inviati o ricevuti.

Il modo in cui viene calcolato l'hash dipende dal protocollo e dalla suite di crittografia usata. Inoltre, l'hash dipende dal tipo di chiave di autenticazione client usata; il parametro pszAlgId indica il tipo di chiave usata per l'autenticazione client.

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