Функция 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 |
|