IObjectId::GetAlgorithmName 方法 (certenroll.h)

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

语法

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

参数

[in] GroupId

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

  • 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 值

返回代码/值 说明
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

要求

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

另请参阅

IObjectId