Функция NCryptOpenKey (ncrypt.h)
Функция NCryptOpenKey открывает ключ, который существует в указанном поставщике хранилища ключей CNG.
Синтаксис
SECURITY_STATUS NCryptOpenKey(
[in] NCRYPT_PROV_HANDLE hProvider,
[out] NCRYPT_KEY_HANDLE *phKey,
[in] LPCWSTR pszKeyName,
[in] DWORD dwLegacyKeySpec,
[in] DWORD dwFlags
);
Параметры
[in] hProvider
Дескриптор поставщика хранилища ключей для открытия ключа.
[out] phKey
Указатель на переменную NCRYPT_KEY_HANDLE , которая получает дескриптор ключа. Завершив использование этого дескриптора, отпустите его, передав его в функцию NCryptFreeObject .
[in] pszKeyName
Указатель на строку Юникода, завершающуюся null, которая содержит имя извлекаемого ключа.
[in] dwLegacyKeySpec
Устаревший идентификатор, указывающий тип ключа. Это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Ключ является ключом обмена ключами. |
|
Ключ является ключом подписи. |
|
Ключ не является ни одним из указанных выше типов. |
[in] dwFlags
Флаги, изменяющие поведение функции. Это может быть ноль или сочетание одного или нескольких из следующих значений.
Возвращаемое значение
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.
Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Параметр dwFlags содержит недопустимое значение. |
|
Указанный ключ не найден. |
|
Недопустимый параметр hProvider . |
|
Один или несколько параметров являются недопустимыми. |
|
Произошел сбой выделения памяти. |
Комментарии
Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать на запросы.
По соображениям производительности программные поставщики KSP майкрософт кэшируют материал закрытого ключа в локальном центре безопасности (LSA) до тех пор, пока открыт дескриптор ключа. LSA — это привилегированный системный процесс. Таким образом, другие пользователи не могут получить доступ к этой кэшируемой копии ключа, если пользователь не обладает правами администратора в системе. Это поведение нельзя изменить с помощью конфигурации.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | ncrypt.h |
Библиотека | Ncrypt.lib |
DLL | Ncrypt.dll |