Функция SslExportKey
Функция SslExportKey возвращает сеансовый ключ SSL или открытый эфемерный ключ в сериализованный BLOB-объект.
Синтаксис
SECURITY_STATUS WINAPI SslExportKey(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_ NCRYPT_KEY_HANDLE hKey,
_In_ LPCWSTR pszBlobType,
_Out_opt_ PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags
);
Параметры
-
hSslProvider [in]
-
Дескриптор экземпляра поставщика протокола SSL.
-
hKey [in]
-
Дескриптор ключа для экспорта.
Если ключ не указан, задайте для этого параметра значение NULL.
Примечание
Дескриптор hKey получается путем вызова функции SslOpenPrivateKey . Дескрипторы, полученные из функции NCryptOpenKey , не поддерживаются.
-
pszBlobType [in]
-
Строка Юникода, заканчивающаяся нулевым значением, которая содержит идентификатор, указывающий тип большого двоичного объекта для экспорта. Это может быть одно из следующих значений.
Значение Значение - BCRYPT_DH_PUBLIC_BLOB
Экспорт открытого ключа Diffie-Hellman. Буфер pbOutput получает BCRYPT_DH_KEY_BLOB структуру, за которой сразу же следуют данные ключа. - BCRYPT_ECCPUBLIC_BLOB
Экспорт открытого ключа шифрования на эллиптических кривых (ECC). Буфер pbOutput получает BCRYPT_ECCKEY_BLOB структуру, за которой сразу же следуют данные ключа. - BCRYPT_OPAQUE_KEY_BLOB
Экспорт симметричного ключа в формате, который относится к одному поставщику служб шифрования (CSP). Непрозрачные BLOB-объекты не могут быть переданы и должны быть импортированы с помощью того же поставщика служб шифрования (CSP), который создал большой двоичный объект. - BCRYPT_RSAPUBLIC_BLOB
Экспорт открытого ключа RSA. Буфер pbOutput получает BCRYPT_RSAKEY_BLOB структуру, за которой сразу же следуют данные ключа. -
pbOutput [out, необязательный параметр]
-
Адрес буфера, получающего большой двоичный объект ключа. Параметр cbOutput содержит размер этого буфера. Если этот параметр имеет значение NULL, эта функция поместит требуемый размер в байтах в DWORD , на который указывает параметр pcbResult .
-
cbOutput [in]
-
Размер буфера pbOutput в байтах.
-
pcbResult [out]
-
Адрес переменной DWORD , которая получает количество байтов, скопированных в буфер pbOutput . Если при вызове функции параметр pbOutput имеет значение NULL , требуемый размер буфера pbOutput в байтах возвращается в DWORD , на который указывает этот параметр.
-
dwFlags [in]
-
Зарезервировано для последующего использования.
Возвращаемое значение
Если функция завершается успешно, она возвращает ноль.
Если функция завершается сбоем, она возвращает ненулевое значение ошибки.
Возможные коды возврата включают, помимо прочего, следующие.
Возвращаемый код/значение | Описание |
---|---|
|
Один из предоставленных дескрипторов недопустим. |
Комментарии
Функция SslExportKey упрощает передачу сеансовых ключей из одного процесса в другой, а также экспорт открытой части эфемерного ключа.
При экспорте ключей сеанса тип BLOB является непрозрачным, что означает, что формат большого двоичного объекта не имеет значения, если функции SslExportKey и SslImportKey могут интерпретировать его.
При экспорте открытой части эфемерного ключа тип BLOB должен иметь соответствующий тип, например NCRYPT_DH_PUBLIC_BLOB или NCRYPT_ECCPUBLIC_BLOB.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
DLL |
|