Метод IX509ExtensionSubjectKeyIdentifier::InitializeEncode (certenroll.h)

Метод InitializeEncode инициализирует расширение из массива байтов, содержащего идентификатор ключа. Массив байтов представлен строкой в кодировке Юникод.

Синтаксис

HRESULT InitializeEncode(
  [in] EncodingType Encoding,
  [in] BSTR         strKeyIdentifier
);

Параметры

[in] Encoding

Значение перечисления EncodingType , указывающее тип кодировки Юникода, применяемой к параметру strKeyIdentifier .

[in] strKeyIdentifier

Переменная BSTR , содержащая идентификатор ключа.

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

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

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

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

Комментарии

Как правило, входное значение должно быть хэшом SHA-1 открытого ключа , содержащегося в сертификате подписи центра сертификации. Метод связывает значение с идентификатором объекта (OID) XCN_OID_SUBJECT_KEY_IDENTIFIER (2.5.29.14) и кодирует его с помощью Distinguished Encoding Rules (DER).

Прежде чем использовать объект IX509ExtensionSubjectKeyIdentifier, необходимо вызвать либо InitializeEncode, либо InitializeDecode. Эти два метода дополняют друг друга. Метод InitializeEncode позволяет создать объект расширения Абстрактная синтаксическая нотация 1 (ASN.1) в кодировке DER из необработанных данных, а метод InitializeDecode позволяет инициализировать необработанные данные из закодированного объекта.

Для этого расширения можно получить следующие свойства:

  • Свойство Critical определяет, является ли расширение критическим. Это свойство также можно указать.
  • Свойство ObjectId извлекает OID.
  • Свойство AuthorityKeyIdentifier извлекает необработанные данные.

Требования

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

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

IX509ExtensionSubjectKeyIdentifier