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


Метод IX509CertificateRequestCertificate2::InitializeFromTemplate (certenroll.h)

Метод InitializeFromTemplate инициализирует запрос сертификата с помощью шаблона.

Синтаксис

HRESULT InitializeFromTemplate(
  [in] X509CertificateEnrollmentContext context,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

Параметры

[in] context

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

Значение Значение
ContextUser
Сертификат запрашивается для конечного пользователя.
ContextMachine
Сертификат запрашивается для компьютера.
ContextAdministratorForceMachine
Сертификат запрашивается администратором, действующим от имени компьютера.

[in] pPolicyServer

Указатель на объект IX509EnrollmentPolicyServer , представляющий сервер политики регистрации сертификатов (CEP), содержащий шаблон, заданный параметром pTemplate .

[in] pTemplate

Указатель на объект IX509CertificateTemplate , представляющий шаблон, используемый во время инициализации.

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

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

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

Код возврата Описание
E_POINTER
Параметры pTemplate не могут иметь значение NULL.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
Объект запроса сертификата уже инициализирован.

Комментарии

Метод InitializeFromTemplate создает следующие коллекции:

  • Коллекция ICryptAttributes .
  • Коллекция IX509Extensions .
  • Коллекция IObjectIds , заполненная идентификаторами объектов по умолчанию XCN_OID_KEY_USAGE и XCN_OID_BASIC_CONSTRAINTS2.
  • Пустая коллекция IObjectIds для идентификаторов атрибутов и расширений, которые будут подавляться из нового запроса.

Затем метод проверяет шаблон и выполняет следующие действия:

  • Добавляет расширения, указанные в шаблоне, в коллекцию IX509Extensions .
  • Удаляет критические расширения по умолчанию (XCN_OID_KEY_USAGE и XCN_OID_BASIC_CONSTRAINTS2) из коллекции, если шаблон указывает, что они не являются критическими. Добавляются идентификаторы OID, помеченные шаблоном как критические.
  • Задает свойство SmimeCapabilities, если шаблон поддерживает симметричные алгоритмы.
  • Задает свойство AlternateSignatureAlgorithm, если шаблону требуется идентификатор OID алгоритма дискретной сигнатуры.
  • Создает объект IX509SignatureInformation .
  • Создает OID хэш-алгоритма, если алгоритм указан в шаблоне, и задает его для объекта IX509SignatureInformation .
  • Создает OID алгоритма асимметричного шифрования, если алгоритм указан в шаблоне, и задает его для объекта IX509SignatureInformation .
  • Заполняет многие свойства IX509PrivateKey из параметров шаблона.

Если свойство CSPInformations имеет значение NULL, метод создает коллекцию ICspInformations из поставщиков, установленных на компьютере.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header certenroll.h

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

IX509CertificateRequestCertificate2