SslGenerateMasterKey 함수
SslGenerateMasterKey 함수는 SSL(Secure Sockets Layer protocol) master 비밀 키를 계산합니다.
구문
SECURITY_STATUS WINAPI SslGenerateMasterKey(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_ NCRYPT_KEY_HANDLE hPrivateKey,
_In_ NCRYPT_KEY_HANDLE hPublicKey,
_Out_ NCRYPT_KEY_HANDLE *phMasterKey,
_In_ DWORD dwProtocol,
_In_ DWORD dwCipherSuite,
_In_ PNCryptBufferDesc pParameterList,
_Out_ PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags
);
매개 변수
-
hSslProvider [in]
-
SSL 프로토콜 공급자에 대한 핸들은 instance.
-
hPrivateKey [in]
-
교환에 사용되는 프라이빗 키 에 대한 핸들입니다.
-
hPublicKey [in]
-
교환에 사용되는 공개 키 에 대한 핸들입니다.
-
phMasterKey [out]
-
생성된 master 키에 대한 핸들에 대한 포인터입니다.
-
dwProtocol [in]
-
CNG SSL 공급자 프로토콜 식별자 값 중 하나입니다.
-
dwCipherSuite [in]
-
CNG SSL 공급자 암호 그룹 식별자 값 중 하나입니다.
-
pParameterList [in]
-
키 교환 작업의 일부로 사용되는 정보를 포함하는 NCryptBuffer 버퍼 배열에 대한 포인터입니다. 정확한 버퍼 집합은 사용되는 프로토콜 및 암호 도구 모음에 따라 달라집니다. 최소한 목록에는 클라이언트 및 서버 제공 임의 값이 포함된 버퍼가 포함됩니다.
-
pbOutput [out]
-
서버의 공개 키로 암호화된 프리마스터 비밀을 수신하는 버퍼의 주소입니다. cbOutput 매개 변수에는 이 버퍼의 크기가 포함됩니다. 이 매개 변수가 NULL인 경우 이 함수는 pcbResult 매개 변수가 가리키는 DWORD에서 필요한 크기(바이트)를 반환합니다.
참고
이 버퍼는 RSA 키 교환을 수행할 때 사용됩니다.
-
cbOutput [in]
-
pbOutput 버퍼의 크기(바이트)입니다.
-
pcbResult [out]
-
pbOutput 버퍼에 기록된 바이트 수를 배치할 DWORD 값에 대한 포인터입니다.
-
dwFlags [in]
-
이 함수가 클라이언트 쪽 또는 서버 쪽 키 교환에 사용되는지 여부를 지정합니다.
값 의미 - NCRYPT_SSL_CLIENT_FLAG
- 0x00000001
클라이언트 쪽 키 교환을 지정합니다. - NCRYPT_SSL_SERVER_FLAG
- 0x00000002
서버 쪽 키 교환을 지정합니다.
반환 값
함수가 성공하면 0을 반환합니다.
함수가 실패하면 0이 아닌 오류 값이 반환됩니다.
가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.
반환 코드/값 | 설명 |
---|---|
|
필요한 버퍼를 할당하는 데 메모리가 부족합니다. |
|
제공된 핸들 중 하나가 잘못되었습니다. |
|
phMasterKey 또는 hPublicKey 매개 변수가 잘못되었습니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 [데스크톱 앱만 해당] |
헤더 |
|
DLL |
|