Метод 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.
Возвращаемый код/значение | Описание |
---|---|
|
Не удалось найти OID алгоритма. |
|
Сведения о CSP не инициализированы. Дополнительные сведения см. в разделе Интерфейс ICspInformation . |
Комментарии
Перед вызовом GetAlgorithmOid необходимо вызвать метод InitializeFromName или InitializeFromType в интерфейсе ICspInformation.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |