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


Функция CryptUIWizImport (cryptuiapi.h)

Функция импортирует сертификат, список доверия сертификатов (CTL), список отзыва сертификатов (CRL) или хранилище сертификатов в хранилище сертификатов. Импорт может выполняться как с взаимодействием с пользователем, так и без нее.

Синтаксис

BOOL CryptUIWizImport(
  [in] DWORD                         dwFlags,
  [in] HWND                          hwndParent,
  [in] LPCWSTR                       pwszWizardTitle,
  [in] PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,
  [in] HCERTSTORE                    hDestCertStore
);

Параметры

[in] dwFlags

Содержит флаги, которые изменяют поведение функции. Это может быть ноль или сочетание одного или нескольких из следующих значений.

Примечание За исключением CRYPTUI_WIZ_NO_UI, ни одна из следующих констант не определена в опубликованном файле заголовка. Чтобы использовать эти константы, необходимо определить их с помощью указанных значений.
 
Значение Значение
CRYPTUI_WIZ_NO_UI
0x0001
Эта функция выполняет импорт на основе сведений из структуры CRYPTUI_WIZ_IMPORT_SRC_INFO , на которую указывает pImportSrc , в хранилище, заданное hDestCertStore , без отображения пользовательского интерфейса. Если этот флаг не указан, эта функция отобразит мастер, который поможет пользователю выполнить процесс импорта.

Начиная с Windows 8 и Windows Server 2012, если вы устанавливаете этот флаг и импортируете сертификат из большого двоичного объекта PFX, который был защищен субъектом Active Directory (AD), и текущий пользователь в составе этого субъекта имеет разрешение на расшифровку пароля, внедренного в пакет PFX, импорт будет выполнен успешно без необходимости задавать пароль в CRYPTUI_WIZ_IMPORT_SRC_INFO Структура. Дополнительные сведения о защите PFX для субъекта AD см. в разделе параметр pvPara и флаг PKCS12_PROTECT_TO_DOMAIN_SIDS функции PFXExportCertStoreEx .

CRYPTUI_WIZ_IGNORE_NO_UI_FLAG_FOR_CSPS
0x0002
Подавлять все пользовательские интерфейсы, созданные поставщиками служб шифрования (CSP). Этот параметр может быть переопределен параметром CRYPTUI_WIZ_NO_UI_EXCEPT_CSP .
CRYPTUI_WIZ_NO_UI_EXCEPT_CSP
0x0003
Подавлять все пользовательские интерфейсы, кроме созданных CSP. Этот параметр переопределяет параметр CRYPTUI_WIZ_IGNORE_NO_UI_FLAG_FOR_CSPS .
CRYPTUI_WIZ_IMPORT_ALLOW_CERT
0x00020000
Разрешить импорт сертификатов.
CRYPTUI_WIZ_IMPORT_ALLOW_CRL
0x00040000
Разрешить импорт списков отзыва сертификатов.
CRYPTUI_WIZ_IMPORT_ALLOW_CTL
0x00080000
Разрешить импорт списков CCL.
CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE
0x00010000
Не разрешайте пользователю изменять целевое хранилище сертификатов, представленное параметром hDestCertStore .
CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE
0x00100000
Импортируйте объект в хранилище сертификатов для локального компьютера. Это относится только к импорту обмена личной информацией (PFX).
CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER
0x00200000
Импортируйте объект в хранилище сертификатов для текущего пользователя. Это относится только к импорту PFX.
CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE
0x00400000
Импортируйте объект в удаленное хранилище сертификатов. Установите этот флаг, если параметр hDestCertStore представляет удаленное хранилище сертификатов.

[in] hwndParent

Дескриптор окна, используемого в качестве родительского элемента диалогового окна, создаваемого этой функцией. Этот параметр игнорируется, если флаг CRYPTUI_WIZ_NO_UI установлен в dwFlags.

[in] pwszWizardTitle

Указатель на строку Юникода, завершающуюся null, которая содержит заголовок, используемый в диалоговом окне, создаваемом этой функцией. Этот параметр игнорируется, если флаг CRYPTUI_WIZ_NO_UI установлен в dwFlags.

[in] pImportSrc

Указатель на структуру CRYPTUI_WIZ_IMPORT_SRC_INFO , содержащую сведения об импортируемом объекте. Этот параметр является обязательным, если CRYPTUI_WIZ_NO_UI задано в dwFlags и в противном случае является необязательным.

[in] hDestCertStore

Дескриптор хранилища сертификатов для импорта. Если этот параметр имеет значение NULL и флаг CRYPTUI_WIZ_NO_UI не задан в dwFlags, мастер предложит пользователю выбрать хранилище сертификатов.

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

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

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

Комментарии

Если в dwFlags не задан ни один из следующих трех флагов, импорт содержимого любого типа разрешен:

  • CRYPTUI_WIZ_IMPORT_ALLOW_CERT
  • CRYPTUI_WIZ_IMPORT_ALLOW_CRL
  • CRYPTUI_WIZ_IMPORT_ALLOW_CTL
Флаги CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE и CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER используются для принудительной принудительной отправки содержимого большого двоичного объекта PFX в локальное хранилище компьютера или в хранилище текущего пользователя. Если ни из этих флагов не задан, а hDestCertStore имеет значение NULL, выполните следующие действия:
  • Закрытый ключ в большом двоичном объекте PFX будет принудительно импортирован в хранилище текущего пользователя.
  • Если CRYPTUI_WIZ_NO_UI не задано, мастер предложит пользователю выбрать хранилище сертификатов из текущего хранилища сертификатов пользователя.

Требования

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

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

CRYPTUI_WIZ_IMPORT_SRC_INFO

CryptUIWizExport