Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция BCryptImportKey
Синтаксис
NTSTATUS BCryptImportKey(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, optional] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[out, optional] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Параметры
[in] hAlgorithm
Дескриптор поставщика алгоритма для импорта ключа. Этот дескриптор получается путем вызова функции BCryptOpenAlgorithmProvider.
[in, optional] hImportKey
Дескриптор ключа шифрования ключа, необходимый для распаковки ключа BLOB-объекта в параметре pbInput.
Windows Server 2008 и Windows Vista: Этот параметр не используется и должен иметь значение NULL.
[in] pszBlobType
Строка Юникода, завершающая значение NULL, содержащая идентификатор, указывающий тип БОЛЬШОго двоичного объекта, содержащегося в буфере pbInput. Это может быть одно из следующих значений.
| Ценность | Значение |
|---|---|
|
Импорт симметричного ключа из ключа AES, упаковаемого в большой двоичный объект. Параметр hImportKey должен ссылаться на допустимый указатель BCRYPT_KEY_HANDLE на ключ шифрования ключей.
Windows Server 2008 и Windows Vista: этот тип BLOB-объектов не поддерживается. |
|
Импорт симметричного ключа из BLOB-объекта данных. Параметр pbInput — это указатель на структуру BCRYPT_KEY_DATA_BLOB_HEADER сразу после ключа BLOB. |
|
Импортируйте симметричный ключ BLOB в формате, относящееся к одному поставщику служб CSP. Непрозрачные BLOB-объекты не переносимы и должны быть импортированы с помощью того же поставщика служб CSP, который создал БОЛЬШОЙ ДВОИЧНЫй объект. Непрозрачные BLOB-объекты предназначены только для межпроцессного передачи ключей и не подходят для сохранения и чтения в разных версиях поставщика. |
[out] phKey
Указатель на BCRYPT_KEY_HANDLE, получающий дескриптор импортированного ключа. Этот дескриптор используется в последующих функциях, требующих ключа, например BCryptEncrypt. Этот дескриптор должен быть освобожден, если он больше не нужен, передав его в функцию BCryptDekey.
[out, optional] pbKeyObject
Указатель на буфер, получающий импортированный объект ключа. Параметр cbKeyObject
Эта память может быть освобождена только после того, как дескриптор ключа phKey будет уничтожен.
[in] cbKeyObject
Размер в байтах буфера pbKeyObject.
[in] pbInput
Адрес буфера, содержащего ключевой BLOB-объект для импорта. Параметр cbInput содержит размер этого буфера. Параметр pszBlobType указывает тип ключа BLOB, который содержит этот буфер.
[in] cbInput
Размер
[in] dwFlags
Набор флагов, изменяющих поведение этой функции. В настоящее время флаги не определены, поэтому этот параметр должен быть равен нулю.
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают в себя, но не ограничиваются следующими.
| Возвращаемый код | Описание |
|---|---|
|
Функция была успешной. |
|
Размер ключевого объекта, указанного параметром cbKeyObject, недостаточно велик для хранения ключевого объекта. |
|
Дескриптор алгоритма в параметре hAlgorithm недопустим. |
|
Один или несколько параметров недопустимы. |
|
Поставщик алгоритмов, указанный параметром hAlgorithm |
Замечания
В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptImportKey можно вызывать из пользовательского режима или режима ядра. Вызывающие серверы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL DISPATCH_LEVEL, то дескриптор, предоставленный в параметре hAlgorithm, должен быть открыт с помощью флага BCRYPT_PROV_DISPATCH, а все указатели, передаваемые в функцию BCryptImportKey, должны ссылаться на неупакованную (или заблокированную) память.
Чтобы вызвать эту функцию в режиме ядра, используйте Cng.lib, которая входит в состав пакета средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: для вызова этой функции в режиме ядра используйте Ksecdd.lib.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Виндоус |
| заголовка | bcrypt.h |
| библиотеки |
Bcrypt.lib |
| DLL | Bcrypt.dll |