Метод IX509CertificateRequestPkcs7V2::InitializeFromTemplate (certenroll.h)
Метод InitializeFromTemplate инициализирует запрос сертификата с помощью шаблона.
Синтаксис
HRESULT InitializeFromTemplate(
[in] X509CertificateEnrollmentContext context,
[in] IX509EnrollmentPolicyServer *pPolicyServer,
[in] IX509CertificateTemplate *pTemplate
);
Параметры
[in] context
Значение перечисления X509CertificateEnrollmentContext , указывающее, предназначен ли запрошенный сертификат для конечного пользователя, компьютера или администратора, действующего от имени компьютера. Это может быть одно из следующих значений.
[in] pPolicyServer
Указатель на объект IX509EnrollmentPolicyServer , представляющий сервер политики регистрации сертификатов (CEP), содержащий шаблон, заданный параметром pTemplate .
[in] pTemplate
Указатель на объект IX509CertificateTemplate , представляющий шаблон, используемый во время инициализации.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Возвращаемый код или значение | Описание |
---|---|
|
Параметр pTemplate не может иметь значение NULL. |
|
Объект запроса сертификата уже инициализирован. |
Комментарии
Метод 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 |