Метод ICertPropertyRenewal::InitializeFromCertificateHash (certenroll.h)
Метод InitializeFromCertificateHash инициализирует объект из нового сертификата.
Синтаксис
HRESULT InitializeFromCertificateHash(
[in] VARIANT_BOOL MachineContext,
[in] EncodingType Encoding,
[in] BSTR strCertificate
);
Параметры
[in] MachineContext
Значение VARIANT_BOOL , указывающее, является ли хранилище сертификатов для локального компьютера или текущего пользователя. Укажите VARIANT_TRUE для компьютера и VARIANT_FALSE для пользователя.
[in] Encoding
Значение перечисления EncodingType , указывающее тип кодировки Юникода, применяемой к входной строке, содержащей сертификат в кодировке DER.
[in] strCertificate
Переменная BSTR , содержащая сертификат в кодировке DER.
Начиная с Windows 7 и Windows Server 2008 R2, вы можете указать печатный или серийный номер сертификата, а не закодированный сертификат. Это приводит к тому, что функция будет выполнять поиск соответствующего сертификата в соответствующих локальных хранилищах. Помните на следующие моменты.
- BSTR должно быть четным числом шестнадцатеричных цифр.
- Пробелы между шестнадцатеричными парами игнорируются.
- Параметр Encoding должен иметь значение XCN_CRYPT_STRING_HEXRAW.
- Параметр MachineContext определяет, выполняется ли поиск в хранилищах пользователя или компьютера.
- Если требуется закрытый ключ, выполняется поиск только в личном хранилище и хранилище запросов.
- Если закрытый ключ не требуется, выполняется поиск в корневом и промежуточном хранилищах ЦС.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Возвращаемый код или значение | Описание |
---|---|
|
Объект уже инициализирован. |
Комментарии
Этот метод создает хэш SHA-1 с помощью указанного сертификата. Сертификат должен быть закодирован с помощью Distinguished Encoding Rules (DER) в соответствии со стандартом абстрактной синтаксической нотации 1 (ASN.1). Необходимо также указать тип кодировки Юникода, применяемой к строке, содержащей сертификат в кодировке DER.
Обычно объект ICertPropertyRenewal инициализируется в процессе регистрации. Сертификат, используемый во время регистрации, можно получить, вызвав свойство Certificate в интерфейсе IX509Enrollment .
Вызовите метод SetValueOnCertificate , чтобы связать свойство с сертификатом. Вызовите свойство Renewal , чтобы получить хэш.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |