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


Метод 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".

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

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

Требования

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

См. также

IX509CertificateRequestPkcs10