IObjectId::InitializeFromAlgorithmName 方法 (certenroll.h)
InitializeFromAlgorithmName 方法从算法名称或对象标识符初始化对象。 提供此方法主要用于从加密 API 初始化对象:下一代 (CNG) 算法名称。 但是,可以指定任何 OID 名称。 此方法已启用 Web。
语法
HRESULT InitializeFromAlgorithmName(
[in] ObjectIdGroupId GroupId,
[in] ObjectIdPublicKeyFlags KeyFlags,
[in] AlgorithmFlags AlgFlags,
[in] BSTR strAlgorithmName
);
参数
[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_SIGN_KEY_FLAG
- XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
[in] AlgFlags
AlgorithmFlags 枚举值。 这可以是以下值之一:
- AlgorithmFlagsNone
- AlgorithmFlagsWrap
[in] strAlgorithmName
包含名称的 BSTR 变量。 可以指定一个名称,或一个 OID,采用点点十进制格式。 方法验证格式是否与 ASN.1 X.208 标准一致。 有关 CNG 算法名称的详细信息,请参阅 CNG 算法标识符。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
找不到 OID 信息。 |
|
无法识别算法名称。 |
|
对象已初始化。 |
注解
可以使用 GroupId 参数的上限 16 位来指定接受可变位长度的算法的密钥大小。 例如,若要从 192 位 AES 算法初始化 IObjectId 对象,请为 strAlgorithmName 参数指定“AES”,将剩余长度移 16,并对移位长度和 GroupId 值执行按位 OR 组合。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |
DLL | CertEnroll.dll |