Метод IObjectId::GetAlgorithmName (certenroll.h)

Метод GetAlgorithmName извлекает отображаемое имя, связанное с идентификатором объекта алгоритма (OID).

Синтаксис

HRESULT GetAlgorithmName(
  [in]  ObjectIdGroupId        GroupId,
  [in]  ObjectIdPublicKeyFlags KeyFlags,
  [out] BSTR                   *pstrAlgorithmName
);

Параметры

[in] GroupId

Значение перечисления ObjectIdGroupId , указывающее группу OID для поиска. Это может быть любая из следующих групп алгоритмов:

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
Кроме того, можно также указать группы, которые не содержат алгоритмы шифрования:
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

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

  • XCN_CRYPT_OID_INFO_PUBKEY_ANY
  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
Вы можете использовать одно из двух последних значений, чтобы устранить неоднозначности между алгоритмами, такими как RSA, которые можно использовать как для шифрования, так и для подписи сообщений. Необходимо также указать XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID в параметре GroupId . Укажите XCN_CRYPT_OID_INFO_PUBKEY_ANY , если для параметра GroupId задано значение, отличное от XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID.

[out] pstrAlgorithmName

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

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

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

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

Возвращаемый код/значение Описание
CERTSRV_E_PROPERTY_EMPTY
Строка, содержащая имя алгоритма, пуста.
OLE_E_BLANK
Не удалось найти имя алгоритма. Перед вызовом GetAlgorithmName необходимо вызвать Метод InitializeFromAlgorithmName.

Комментарии

Константу XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID можно использовать для создания значения параметра GroupId , которое учитывает размер ключа для алгоритмов, которые можно определить по переменной битовой длине. Например, чтобы инициализировать объект IObjectId из 192-разрядного алгоритма AES, укажите "AES" для параметра strAlgorithmName , сместите длину влево на 16 и выполните побитовое сочетание или для смещенной битовой длины и XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID.

Если для параметра GroupId задано значение, отличное от XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID, укажите XCN_CRYPT_OID_INFO_PUBKEY_ANY для параметра KeyFlags .

Требования

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

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

IObjectId