Метод IX509CertificateRequestPkcs10::InitializeFromPublicKey (certenroll.h)

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

Синтаксис

HRESULT InitializeFromPublicKey(
  [in]           X509CertificateEnrollmentContext Context,
  [in]           IX509PublicKey                   *pPublicKey,
  [in, optional] BSTR                             strTemplateName
);

Параметры

[in] Context

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

[in] pPublicKey

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

[in, optional] strTemplateName

Переменная BSTR , содержащая общее имя (CN) шаблона в том виде, в котором он отображается в Active Directory, или идентификатор десятичного объекта с точками. Этот параметр является необязательным.

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

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

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

Возвращаемый код или значение Описание
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
Объект запроса сертификата уже инициализирован.

Комментарии

Если указать шаблон, метод InitializeFromPublicKey выполняет следующие действия:

  • Добавляет расширения, указанные в необязательном шаблоне, если таковые есть, в коллекцию 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 Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h
DLL CertEnroll.dll

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

IX509CertificateRequestPkcs10