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


Метод IX509PublicKey::ComputeKeyIdentifier (certenroll.h)

Метод ComputeKeyIdentifier создает идентификатор на основе 160-разрядного хэша SHA-1 открытого ключа.

Синтаксис

HRESULT ComputeKeyIdentifier(
  [in]  KeyIdentifierHashAlgorithm Algorithm,
  [in]  EncodingType               Encoding,
  [out] BSTR                       *pValue
);

Параметры

[in] Algorithm

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

Если это значение — SKIHashDefault или SKIHashSha1, идентификатор создается путем хэширования только массива байтов, содержащего ключ, и исключения тега Distinguished Encoding Rules (DER), длины и неиспользуемых битовых полей.

Если это значение — SKIHashCapiSha1, идентификатор создается путем хэширования массива байтов в кодировке DER, содержащего тег, длину, количество неиспользуемых битов и открытый ключ.

[in] Encoding

Значение перечисления EncodingType , указывающее тип кодировки Юникода, применяемого к хэшу, содержатомуся в параметре pValue . Значение по умолчанию — XCN_CRYPT_STRING_BASE64.

[out] pValue

Указатель на переменную BSTR , содержащую идентификатор ключа.

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

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

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

Возвращаемый код или значение Описание
CERTSRV_E_PROPERTY_EMPTY
Не удалось найти идентификатор объекта алгоритма или параметры открытого ключа.

Комментарии

Перед вызовом ComputeKeyIdentifier необходимо вызвать метод InitializeFromEncodedPublicKeyInfo или Метод Initialize, чтобы инициализировать объект открытого ключа.

Требования

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

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

IX509PublicKey