Share via


SslComputeFinishedHash 함수

SslComputeFinishedHash 함수는 SSL(Secure Sockets Layer protocol) 핸드셰이크의 완료된 메시지에서 보낸 해시를 계산합니다.

구문

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

매개 변수

hSslProvider [in]

SSL 프로토콜 공급자의 핸들은 instance.

hMasterKey [in]

master 키 개체의 핸들입니다.

hHandshakeHash [in]

핸드셰이크 메시지의 해시 핸들입니다.

pbOutput [out]

마침 메시지의 해시를 수신하는 버퍼에 대한 포인터입니다.

cbOutput [in]

pbOutput 버퍼의 길이(바이트)입니다.

dwFlags [in]

다음 상수 중 하나입니다.

의미
NCRYPT_SSL_CLIENT_FLAG
0x00000001
클라이언트 호출임을 지정합니다.
NCRYPT_SSL_SERVER_FLAG
0x00000002
서버 호출임을 지정합니다.

반환 값

함수가 성공하면 0을 반환합니다.

함수가 실패하면 0이 아닌 오류 값이 반환됩니다.

반환 코드/값 설명
NTE_INVALID_HANDLE
2148073510(0x80090026)
제공된 핸들 중 하나가 잘못되었습니다.

설명

SslComputeFinishedHash 함수는 SSL 핸드셰이크 중에 사용할 해시를 생성하는 데 사용되는 세 가지 함수 중 하나입니다.

  1. SslCreateHandshakeHash 함수는 해시 핸들을 가져오기 위해 호출됩니다.
  2. SslHashHandshake 함수는 해시 핸들을 사용하여 해시에 데이터를 추가하는 여러 번 호출됩니다.
  3. 해시된 데이터의 다이제스트를 가져오기 위해 해시 핸들을 사용하여 SslComputeFinishedHash 함수를 호출합니다.

해시 값은 전송되거나 수신된 모든 이전 핸드셰이크 메시지의 해시를 사용하여 master 비밀을 해시하여 계산됩니다.

cbOutput 값은 해시 데이터의 길이를 결정합니다. TLS( 전송 계층 보안 프로토콜 ) 1.0 프로토콜을 사용하는 경우 항상 12바이트여야 합니다. 자세한 내용은 TLS 프로토콜 버전 1.0을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱만 해당]
헤더
Sslprovider.h
DLL
Ncrypt.dll