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 值

返回代码/值 说明
CERTSRV_E_PROPERTY_EMPTY
找不到算法 OID。
OLE_E_BLANK
CSP 信息尚未初始化。 有关详细信息,请参阅 ICspInformation 接口。

注解

在调用 GetAlgorithmOid 之前,必须在 ICspInformation 接口上调用 InitializeFromName 方法或 InitializeFromType 方法。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h
DLL CertEnroll.dll

另请参阅

ICspAlgorithm