Partager via


SslComputeFinishedHash, fonction

La fonction SslComputeFinishedHash calcule le hachage envoyé dans le message terminé du protocole SSL ( Secure Sockets Layer Protocol ).

Syntaxe

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
);

Paramètres

hSslProvider [in]

Handle du fournisseur de protocole SSL instance.

hMasterKey [in]

Handle de l’objet clé master.

hHandshakeHash [in]

Handle du hachage des messages de négociation.

pbOutput [out]

Pointeur vers une mémoire tampon qui reçoit le hachage du message de fin.

cbOutput [in]

Longueur, en octets, de la mémoire tampon pbOutput .

dwFlags [in]

Une des constantes suivantes.

Valeur Signification
NCRYPT_SSL_CLIENT_FLAG
0x00000001
Spécifie qu’il s’agit d’un appel client.
NCRYPT_SSL_SERVER_FLAG
0x00000002
Spécifie qu’il s’agit d’un appel de serveur.

Valeur retournée

Si la fonction réussit, elle retourne zéro.

Si la fonction échoue, elle retourne une valeur d’erreur différente de zéro.

Code/valeur de retour Description
NTE_INVALID_HANDLE
2148073510 (0x80090026)
L’un des handles fournis n’est pas valide.

Notes

La fonction SslComputeFinishedHash est l’une des trois fonctions utilisées pour générer un hachage à utiliser pendant la négociation SSL.

  1. La fonction SslCreateHandshakeHash est appelée pour obtenir un handle de hachage.
  2. La fonction SslHashHandshake est appelée n’importe quel nombre de fois avec le handle de hachage pour ajouter des données au hachage.
  3. La fonction SslComputeFinishedHash est appelée avec le handle de hachage pour obtenir la synthèse des données hachées.

La valeur de hachage est calculée en hachant le master secret avec un hachage de tous les messages de négociation précédents envoyés ou reçus.

La valeur de cbOutput détermine la longueur des données de hachage. Lorsque le protocole TLS ( Transport Layer Security Protocol ) 1.0 est utilisé, il doit toujours s’agir de 12 (octets). Pour plus d’informations, consultez La version 1.0 du protocole TLS.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
Sslprovider.h
DLL
Ncrypt.dll