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


Метод ISignerCertificate::Initialize (certenroll.h)

Метод Initialize инициализирует объект из сертификата подписи.

Синтаксис

HRESULT Initialize(
  [in] VARIANT_BOOL         MachineContext,
  [in] X509PrivateKeyVerify VerifyType,
  [in] EncodingType         Encoding,
  [in] BSTR                 strCertificate
);

Параметры

[in] MachineContext

Переменная VARIANT_BOOL , указывающая, следует ли выполнять поиск в контексте хранилища сертификатов локального компьютера или контексте пользователя, чтобы найти сертификат, определенный параметром strCertificate . Укажите VARIANT_TRUE для компьютера и VARIANT_FALSE для пользователя.

[in] VerifyType

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

[in] Encoding

Значение перечисления EncodingType, указывающее тип кодировки Юникода, применяемой к строке сертификата в кодировке Distinguished Encoding Rules (DER).

[in] strCertificate

Переменная BSTR , содержащая сертификат в кодировке DER.

Начиная с Windows 7 и Windows Server 2008 R2, вы можете указать печатный или серийный номер сертификата, а не закодированный сертификат. Это приводит к тому, что функция будет выполнять поиск соответствующего сертификата в соответствующих локальных хранилищах. Помните на следующие моменты.

  • BSTR должно быть четным числом шестнадцатеричных цифр.
  • Пробелы между шестнадцатеричными парами игнорируются.
  • Параметр Encoding должен иметь значение XCN_CRYPT_STRING_HEXRAW.
  • Параметр MachineContext определяет, выполняется ли поиск в хранилищах пользователя или компьютера.
  • Если требуется закрытый ключ, выполняется поиск только в личном хранилище и хранилище запросов.
  • Если закрытый ключ не требуется, выполняется поиск в корневом и промежуточном хранилищах ЦС.

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

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

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

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

Комментарии

Метод Initialize :

  • Проверяет, существует ли закрытый ключ, связанный с сертификатом.
  • Создает объект IX509SignatureInformation и назначает его объекту ISignerCertificate .
  • Извлекает алгоритм открытого ключа из закрытого ключа.
  • Назначает алгоритм открытого ключа объекту IX509SignatureInformation .

Перед вызовом Initialize задайте следующие свойства:

Требования

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

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

ISignerCertificate