IObjectId::GetAlgorithmName 方法(certenroll.h)

GetAlgorithmName 方法检索与算法对象标识符 (OID) 关联的显示名称。

Syntax

HRESULT GetAlgorithmName(
  [in]  ObjectIdGroupId        GroupId,
  [in]  ObjectIdPublicKeyFlags KeyFlags,
  [out] BSTR                   *pstrAlgorithmName
);

参数

[in] GroupId

指定要搜索的 OID 组的 ObjectIdGroupId 枚举值。 这可以是以下任一算法组:

  • XCN_CRYPT_HASH_ALG_OID_GROUP_ID
  • XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID
  • XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID
  • XCN_CRYPT_SIGN_ALG_OID_GROUP_ID
此外,还可以指定不包含加密算法的组:
  • XCN_CRYPT_RDN_ATTR_OID_GROUP_ID
  • XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID
  • XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID
  • XCN_CRYPT_POLICY_OID_GROUP_ID
  • XCN_CRYPT_TEMPLATE_OID_GROUP_ID

[in] KeyFlags

ObjectIdPublicKeyFlags 枚举值,该值指定是搜索签名还是加密算法。 这可以是以下值之一:

  • XCN_CRYPT_OID_INFO_PUBKEY_ANY
  • XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
  • XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
可以使用最后两个值之一来消除算法之间的歧义,例如可用于加密和签名消息的 RSA。 还必须在 GroupId 参数中指定XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID。 如果将 GroupId 参数设置为除XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID以外的任何参数,请指定XCN_CRYPT_OID_INFO_PUBKEY_ANY

[out] pstrAlgorithmName

指向包含名称的 BSTR 变量的指针。

返回值

如果函数成功,该函数将返回 S_OK

如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括但不限于下表中的值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码/值 Description
CERTSRV_E_PROPERTY_EMPTY
包含算法名称的字符串为空。
OLE_E_BLANK
找不到算法名称。 在调用 GetAlgorithmName 之前,必须调用 InitializeFromAlgorithmName

注解

可以使用 XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID 常量创建一个 GroupId 参数值,该值考虑到可由可变位长度标识的算法的密钥大小。 例如,若要从 192 位 AES 算法初始化 IObjectId 对象,请为 strAlgorithmName 参数指定“AES”,将长度左移 16,并对移位的位长度和 XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID执行按位 OR 组合。

如果将 GroupId 参数设置为除XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID之外的任何参数,请为 KeyFlags 参数指定XCN_CRYPT_OID_INFO_PUBKEY_ANY

要求

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

另请参阅

IObjectId