다음을 통해 공유


SslImportMasterKey 함수

SslImportMasterKey 함수는 서버 쪽 SSL(Secure Sockets Layer Protocol) 키 교환 작업을 수행합니다.

구문

SECURITY_STATUS WINAPI SslImportMasterKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hPrivateKey,
  _Out_ NCRYPT_KEY_HANDLE  *phMasterKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  PNCryptBufferDesc  pParameterList,
  _In_  PBYTE              pbEncryptedKey,
  _In_  DWORD              cbEncryptedKey,
  _In_  DWORD              dwFlags
);

매개 변수

hSslProvider [in]

SSL 프로토콜 공급자에 대한 핸들은 instance.

hPrivateKey [in]

교환에 사용되는 프라이빗 키 에 대한 핸들입니다.

phMasterKey [out]

master 키를 받을 핸들에 대한 포인터입니다.

dwProtocol [in]

CNG SSL 공급자 프로토콜 식별자 값 중 하나입니다.

dwCipherSuite [in]

CNG SSL 공급자 암호 그룹 식별자 값 중 하나입니다.

pParameterList [in]

키 교환 작업의 일부로 사용되는 정보를 포함하는 NCryptBuffer 버퍼 배열에 대한 포인터입니다. 정확한 버퍼 집합은 사용되는 프로토콜 및 암호 도구 모음에 따라 달라집니다. 최소한 목록에는 클라이언트 및 서버 제공 임의 값이 포함된 버퍼가 포함됩니다.

pbEncryptedKey [in]

서버의 공개 키로 암호화된 암호화된 프리마스터 비밀 키가 포함된 버퍼에 대한 포인터입니다.

cbEncryptedKey [in]

pbEncryptedKey 버퍼의 크기(바이트)입니다.

dwFlags [in]

이 매개 변수를 NCRYPT_SSL_SERVER_FLAG 설정하여 서버 호출임을 나타냅니다.

반환 값

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

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

가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드/값 설명
NTE_NO_MEMORY
0x8009000EL
필요한 버퍼를 할당하는 데 메모리가 부족합니다.
NTE_INVALID_HANDLE
0x80090026L
제공된 핸들 중 하나가 잘못되었습니다.
NTE_INVALID_PARAMETER
0x80090027L
phMasterKey 매개 변수는 NULL입니다.

설명

이 함수는 프리마스터 암호를 해독하고, SSL master 비밀을 계산하고, 이 개체에 대한 핸들을 호출자에게 반환합니다. 그런 다음 이 master 키를 사용하여 SSL 세션 키를 파생하고 SSL 핸드셰이크를 완료할 수 있습니다.

참고

이 함수는 RSA 키 교환 알고리즘을 사용할 때 사용됩니다. DH를 사용하는 경우 서버 코드는 대신 SslGenerateMasterKey를 호출합니다.

요구 사항

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