ICspAlgorithm::GetAlgorithmOid 方法(certenroll.h)

GetAlgorithmOid 方法检索算法对象标识符 (OID)。 此方法已启用 Web。

Syntax

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.1.101.3.4.1.45)

如果为 AlgFlags 参数指定长度参数和 AlgorithmFlagsNone (0x00000000), 则会检索与默认算法关联的 OID。 对于Microsoft软件 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.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)

如果为 AlgFlags 参数指定长度参数和 AlgorithmFlagsNone (0x00000000), 则会检索与默认算法关联的 OID。 对于Microsoft软件 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 值

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

注解

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

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows操作系统
Header certenroll.h
DLL CertEnroll.dll

另请参阅

ICpAlgorithm