Бөлісу құралы:


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

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

Синтаксис

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

Параметры

[in] Length

Переменная LONG , определяющая необходимый размер ключа алгоритма симметричного шифрования. Используйте этот параметр для получения определенного алгоритма AES из API шифрования: поставщик хранилища ключей следующего поколения (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)

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

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

 

[in] AlgFlags

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

  • AlgorithmFlagsNone
  • AlgorithmFlagsWrap

Указание AlgorithmFlagsWrap приводит к поиску алгоритмов, для которых отображаемое имя заканчивается "оболочкой". К ним относятся следующие 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)

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

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

 

[out] ppValue

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

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

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

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

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

Замечания

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

Требования

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

См. также

ICspAlgorithm