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


Метод IX509Enrollment::InstallResponse (certenroll.h)

Метод InstallResponse устанавливает цепочку сертификатов на компьютере конечной сущности. Массив байтов, содержащий ответ, кодируется с помощью Distinguished Encoding Rules (DER) в соответствии со стандартом Абстрактная синтаксическая нотация 1 (ASN.1). Необходимо указать массив байтов в кодировке DER в строке, которая является чистой двоичной последовательностью или кодировкой Юникода. Этот метод поддерживается через Интернет.

Синтаксис

HRESULT InstallResponse(
  [in]           InstallResponseRestrictionFlags Restrictions,
  [in]           BSTR                            strResponse,
  [in]           EncodingType                    Encoding,
  [in, optional] BSTR                            strPassword
);

Параметры

[in] Restrictions

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

Значение Значение
AllowNone
Не устанавливайте недоверенные сертификаты или сертификаты, для которых нет соответствующего запроса.
AllowNoOutstandingRequest
Создайте закрытый ключ из ответа сертификата, а не из фиктивного сертификата. Это делает фиктивный сертификат необязательным. Если это значение не задано, фиктивный сертификат должен существовать и из него извлекается закрытый ключ.
AllowUntrustedCertificate
Установите недоверенные конечные сущности и сертификаты центра сертификации . Сертификаты центра сертификации включают корневые и подчиненные сертификаты ЦС. Сертификаты конечных сущностей устанавливаются в личное хранилище, а сертификаты ЦС — в хранилище центра сертификации.
AllowUntrustedRoot
Выполняет то же действие, что и флаг AllowUntrustedCertificate , но также устанавливает сертификат, даже если невозможно создать цепочку сертификатов, так как корневой каталог не является доверенным.
Примечание В Windows Vista поведение этого флага совпадает с поведением, определенным для флага AllowUntrustedCertificate . Начиная с Windows Vista с пакетом обновления 1 (SP1) можно установить сертификат, который связан с ненадежным корневым каталогом.
 

[in] strResponse

Переменная BSTR , содержащая ответ в кодировке DER.

[in] Encoding

Значение перечисления EncodingType , указывающее тип кодировки, применяемой к строке, содержащей ответ в кодировке DER.

[in, optional] strPassword

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

Начиная с Windows 8 и Windows Server 2012, пустой пароль может означать, что пакет PFX был создан в функции PFXExportCertStoreEx с помощью флага PKCS12_PROTECT_TO_DOMAIN_SIDS . В этом случае PFX-файл был зашифрован в группе Active Directory. Дополнительные сведения см. в разделах PFXExportCertStoreEx и PFXImportCertStore.

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

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

Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Код возврата Описание
E_ACCESSDENIED
Этот метод был вызван из Интернета, и в параметре Restrictions был указан параметр AllowNoOutstandingRequest или AllowUntrustedCertificate.
HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW
Длина строки, содержащей пароль, превышает 64 килобайта.
OLE_E_BLANK
Объект регистрации не инициализирован.

Комментарии

Метод InstallResponse :

  1. Извлекает фиктивный сертификат из внешнего хранилища.
  2. Извлекает сертификат, содержащийся в ответе, и устанавливает его на компьютере.
  3. Копирует свойства из фиктивного сертификата во внешнем хранилище в только что установленный сертификат в личном хранилище.

Перед вызовом метода InstallResponse необходимо инициализировать объект IX509Enrollment , вызвав один из следующих методов.

При вызове этого метода из Интернета в параметре Restrictions можно указать только AllowNone или AllowUntrustedRoot. Если указать AllowNoOutstandingRequest или AllowUntrustedCertificate, метод возвращает ошибку E_ACCESSDENIED .

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h
DLL CertEnroll.dll

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

IX509Enrollment