Функция SslGenerateMasterKey
Функция SslGenerateMasterKey вычисляет секретный ключ протокола SSL 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.
-
hPrivateKey [in]
-
Дескриптор закрытого ключа , используемого в обмене.
-
hPublicKey [in]
-
Дескриптор открытого ключа, используемого в обмене.
-
phMasterKey [out]
-
Указатель на дескриптор созданного ключа master.
-
dwProtocol [in]
-
Одно из значений идентификатора протокола поставщика SSL CNG .
-
dwCipherSuite [in]
-
Одно из значений идентификатора комплекта шифров поставщика SSL CNG .
-
pParameterList [in]
-
Указатель на массив буферов NCryptBuffer , содержащих сведения, используемые в рамках операции обмена ключами. Точный набор буферов зависит от используемого протокола и набора шифров. Как минимум, список будет содержать буферы, содержащие предоставленные клиентом и сервером случайные значения.
-
pbOutput [out]
-
Адрес буфера, который получает секрет предварительного мастера, зашифрованный с помощью открытого ключа сервера. Параметр cbOutput содержит размер этого буфера. Если этот параметр имеет значение NULL, эта функция возвращает требуемый размер в байтах в DWORD , на который указывает параметр pcbResult .
Примечание
Этот буфер используется при обмене ключами RSA.
-
cbOutput [in]
-
Размер буфера pbOutput в байтах.
-
pcbResult [out]
-
Указатель на значение DWORD , в котором помещалось количество байтов, записанных в буфер pbOutput .
-
dwFlags [in]
-
Указывает, используется ли эта функция для обмена ключами на стороне клиента или сервера.
Значение Значение - NCRYPT_SSL_CLIENT_FLAG
- 0x00000001
Указывает обмен ключами на стороне клиента. - NCRYPT_SSL_SERVER_FLAG
- 0x00000002
Указывает обмен ключами на стороне сервера.
Возвращаемое значение
Если функция завершается успешно, она возвращает ноль.
Если функция завершается сбоем, она возвращает ненулевое значение ошибки.
Возможные коды возврата включают, помимо прочего, следующие.
Возвращаемый код/значение | Описание |
---|---|
|
Недостаточно памяти для выделения необходимых буферов. |
|
Один из предоставленных дескрипторов недопустим. |
|
Недопустимый параметр phMasterKey или hPublicKey . |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
DLL |
|