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


Метод IX509CertificateRequestPkcs7V2::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.
ERROR_ALREADY_INITIALIZED
Объект запроса сертификата уже инициализирован.

Комментарии

Метод InitializeFromTemplate создает объект запроса PKCS #7 и задает следующие свойства для значений, существовавших до вызова этого метода:

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

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

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

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

Наконец, метод задает инициализированный запрос PKCS #10 в качестве внутреннего объекта запроса.

Требования

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

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

IX509CertificateRequestPkcs7V2