Поделиться через


Функция CryptDecryptKey (wincrypt.h)

Важно Этот API является устаревшим. Новое и существующее программное обеспечение должно начать использовать API-интерфейсы шифрования следующего поколения. Корпорация Майкрософт может удалить этот API в будущих выпусках.
 
Функция CryptDeographyKey освобождает дескриптор, на который ссылается параметр hKey . После освобождения дескриптора ключа он становится недействительным и не может использоваться повторно.

Если дескриптор ссылается на сеансовый ключ или открытый ключ, импортированный в поставщик служб шифрования (CSP) через CryptImportKey, эта функция уничтожает ключ и освобождает память, используемую ключом. Многие поставщики служб конфигурации перезаписывают память, в которой находился ключ, перед освобождением. Однако базовая пара открытого и закрытого ключей не уничтожается этой функцией. Уничтожается только дескриптор.

Синтаксис

BOOL CryptDestroyKey(
  [in] HCRYPTKEY hKey
);

Параметры

[in] hKey

Дескриптор ключа, который требуется уничтожить.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Коды ошибок, предваряемые "NTE", создаются конкретным поставщиком служб конфигурации. В следующей таблице перечислены некоторые возможные коды ошибок.

Код возврата Описание
ERROR_BUSY
Объект ключа, указанный в hKey , в настоящее время используется и не может быть уничтожен.
ERROR_INVALID_HANDLE
Параметр hKey указывает недопустимый дескриптор.
ERROR_INVALID_PARAMETER
Параметр hKey содержит недопустимое значение.
NTE_BAD_KEY
Параметр hKey не содержит допустимый дескриптор ключа.
NTE_BAD_UID
Не удается найти контекст CSP, указанный при создании ключа.

Комментарии

Ключи занимают как пространство памяти операционной системы, так и пространство памяти CSP. Некоторые поставщики служб конфигурации реализуются на оборудовании с ограниченными ресурсами памяти. Приложения должны уничтожить все ключи с помощью функции CryptDefinishedKey после завершения работы с ними.

Все дескрипторы ключей, созданные или импортированные с помощью определенного CSP, должны быть уничтожены, прежде чем этот дескриптор CSP будет освобожден с помощью функции CryptReleaseContext .

Примеры

Пример использования функции CryptDetraitsKey см. в разделе Пример программы C: создание и хэширование ключа сеанса.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

CryptDeriveKey

CryptGenKey

CryptGetUserKey

CryptImportKey

Функции создания ключей и обмена