SslGetCipherSuitePRFHashAlgorithm function

The SslGetCipherSuitePRFHashAlgorithm function returns the Cryptography API: Next Generation (CNG) Algorithm Identifier of the hashing algorithm that is used for the Transport Layer Security protocol (TLS) pseudo-random function (PRF) for the input protocol, cipher suite, and key type.

Syntax

SECURITY_STATUS WINAPI SslGetCipherSuitePRFHashAlgorithm(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  DWORD              dwKeyType,
  _Out_ WCHAR              szPRFHash[NCRYPT_SSL_MAX_NAME_SIZE],
  _In_  DWORD              dwFlags
);

Parameters

hSslProvider [in]

The handle of the Secure Sockets Layer protocol (SSL) protocol provider instance.

dwProtocol [in]

One of the CNG SSL Provider Protocol Identifier values.

dwCipherSuite [in]

One of the CNG SSL Provider Cipher Suite Identifier values.

dwKeyType [in]

One of the CNG SSL Provider Key Type Identifier values. For key types that are not elliptic curve cryptography (ECC), set this parameter to zero.

szPRFHash [out]

One of the CNG Algorithm Identifiers for the hash that will be used for the TLS PRF.

dwFlags [in]

This parameter is reserved for future use and must be set to zero.

Return value

If the function succeeds, it returns zero.

If the function fails, it returns a nonzero error value.

Possible return codes include, but are not limited to, the following.

Return code/value Description
NTE_INVALID_HANDLE
0x80090026L
The hSslProvider parameter contains a pointer that is not valid.
NTE_INVALID_PARAMETER
0x80090027L
The szPRFHash parameter is set to NULL.
NTE_NOT_SUPPORTED
0x80090029L
The selected function is not supported in the specified version of the interface.
NTE_BAD_FLAGS
0x80090009L
The dwFlags parameter must be set to zero.

Remarks

This SslGetCipherSuitePRFHashAlgorithm function is called for TLS 1.2 or later conversations to query the hashing algorithm that will be used in the TLS PRF.

Requirements

Requirement Value
Minimum supported client
Windows 7 [desktop apps only]
Minimum supported server
Windows Server 2008 R2 [desktop apps only]
Header
Sslprovider.h
DLL
Ncrypt.dll