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


Метод ICspAlgorithm::GetAlgorithmOid (certenroll.h)

Метод GetAlgorithmOid извлекает идентификатор объекта алгоритма (OID). Этот метод включен через Интернет.

Синтаксис

HRESULT GetAlgorithmOid(
  [in]  LONG           Length,
  [in]  AlgorithmFlags AlgFlags,
  [out] IObjectId      **ppValue
);

Параметры

[in] Length

Переменная LONG , определяющая требуемый размер ключа алгоритма симметричного шифрования. Используйте этот параметр для получения определенного алгоритма AES из API шифрования: поставщика хранилища ключей (KSP) следующего поколения (CNG). KSP может содержать только один алгоритм с именем AES, но поддерживает все варианты AES в следующем списке:

  • szOID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
  • szOID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
  • szOID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
  • szOID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
  • szOID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
  • szOID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)

Если указать ноль для параметра Length и AlgorithmFlagsNone (0x00000000) для параметра AlgFlags , извлекается объект OID, связанный с алгоритмом по умолчанию. Для microsoft Software KSP и Microsoft Smart Card KSP алгоритм AES по умолчанию szOID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2).

Примечание Этот параметр должен быть равен нулю для любого алгоритма, отличного от алгоритма симметричного шифрования.

 

[in] AlgFlags

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

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap

Указание AlgorithmFlagsWrap приводит к тому, что этот метод будет искать алгоритмы, для которых отображаемое имя заканчивается на "wrap". Сюда входят следующие идентификаторы OID:

  • szOID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
  • szOID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
  • szOID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)
  • XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.6)
  • XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)

Если указать ноль для параметра Length и AlgorithmFlagsNone (0x00000000) для параметра AlgFlags , извлекается объект OID, связанный с алгоритмом по умолчанию. Для microsoft Software KSP и Microsoft Smart Card KSP алгоритм AES по умолчанию szOID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2).

Примечание Этот параметр должен быть равен нулю для любого алгоритма, отличного от алгоритма симметричного шифрования.

 

[out] ppValue

Адрес переменной, получающей указатель на интерфейс IObjectId , представляющий OID алгоритма.

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

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

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

Возвращаемый код/значение Описание
CERTSRV_E_PROPERTY_EMPTY
Не удалось найти OID алгоритма.
OLE_E_BLANK
Сведения о CSP не инициализированы. Дополнительные сведения см. в разделе Интерфейс ICspInformation .

Комментарии

Перед вызовом GetAlgorithmOid необходимо вызвать метод InitializeFromName или InitializeFromType в интерфейсе ICspInformation.

Требования

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

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

ICspAlgorithm