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


Метод IX509CertificateRequestPkcs10V2::InitializeFromPublicKeyTemplate (certenroll.h)

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

Синтаксис

HRESULT InitializeFromPublicKeyTemplate(
  [in] X509CertificateEnrollmentContext Context,
  [in] IX509PublicKey                   *pPublicKey,
  [in] IX509EnrollmentPolicyServer      *pPolicyServer,
  [in] IX509CertificateTemplate         *pTemplate
);

Параметры

[in] Context

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

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

[in] pPublicKey

Указатель на интерфейс IX509PublicKey , представляющий открытый ключ.

[in] pPolicyServer

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

[in] pTemplate

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

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

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

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

Возвращаемый код/значение Описание
E_POINTER
Параметры pPublicKey, pPolicyServer или pTemplate имеют значение NULL.
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
Объект запроса сертификата уже инициализирован.

Комментарии

Метод InitializeFromPublicKeyTemplate выполняет следующие действия:

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

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

Метод не создает закрытый ключ. Использование этого метода подразумевает, что запрос имеет нулевую подпись. Поэтому метод задает свойство NullSigned объекта IX509SignatureInformation .

Требования

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

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

IX509CertificateRequestPkcs10V2