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

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

Синтаксис

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

Параметры

[in] context

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

Ценность Meaning
ContextUser
Сертификат запрашивается для конечного пользователя.
ContextMachine
Сертификат запрашивается для компьютера.
ContextAdministratorForceMachine
Сертификат запрашивается администратором от имени компьютера.

[in] pPolicyServer

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

[in] pTemplate

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

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

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

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

Возврат кода или значения Description
E_POINTER
Параметр pTemplate не может иметь значение NULL.
ERROR_ALREADY_INITIALIZED
Объект запроса сертификата уже инициализирован.

Замечания

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

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

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

  • Добавляет расширения, указанные шаблоном, в коллекцию 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 [только классические приложения]
целевая платформа Виндоус
Header certenroll.h

См. также

IX509CertificateRequestPkcs7V2