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

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

Синтаксис

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

Параметры

[in] Context

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

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

[in] pPublicKey

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

[in] pPolicyServer

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

[in] pTemplate

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

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

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

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

Возврат кода или значения Description
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 от поставщиков, установленных на компьютере.

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

Требования

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

См. также

IX509CertificateRequestPkcs10V2