ICspAlgorithm::GetAlgorithmOid 方法 (certenroll.h)
GetAlgorithmOid 方法 (OID) 检索算法对象标识符。 此方法已启用 Web。
语法
HRESULT GetAlgorithmOid(
[in] LONG Length,
[in] AlgorithmFlags AlgFlags,
[out] IObjectId **ppValue
);
参数
[in] Length
一个 LONG 变量,用于标识对称加密算法所需的密钥大小。 使用此参数从加密 API 检索特定的 AES 算法:下一代 (CNG) 密钥存储提供程序 (KSP) 。 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 参数指定零,为 AlgFlags 参数指定 AlgorithmFlagsNone (0x00000000) ,则会检索与默认算法关联的 OID。 对于 Microsoft Software KSP 和 Microsoft 智能卡 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 参数指定零,为 AlgFlags 参数指定 AlgorithmFlagsNone (0x00000000) ,则会检索与默认算法关联的 OID。 对于 Microsoft Software KSP 和 Microsoft 智能卡 KSP,默认 AES 算法为 szOID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2) 。
[out] ppValue
一个变量的地址,该变量接收指向表示算法 OID 的 IObjectId 接口的指针。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
找不到算法 OID。 |
|
CSP 信息尚未初始化。 有关详细信息,请参阅 ICspInformation 接口。 |
注解
在调用 GetAlgorithmOid 之前,必须在 ICspInformation 接口上调用 InitializeFromName 方法或 InitializeFromType 方法。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |
DLL | CertEnroll.dll |