IX509SignatureInformation::GetSignatureAlgorithm 方法 (certenroll.h)
GetSignatureAlgorithm 方法检索签名算法对象标识符 (OID) 。
语法
HRESULT GetSignatureAlgorithm(
[in] VARIANT_BOOL Pkcs7Signature,
[in] VARIANT_BOOL SignatureKey,
[out] IObjectId **ppValue
);
参数
[in] Pkcs7Signature
一个VARIANT_BOOL变量,指定是使用该算法对 PKCS #7 还是 CMC 证书请求进行签名。
[in] SignatureKey
一个 VARIANT_BOOL 变量,指定当算法 OID 与多个用途关联时,是否首选仅用于签名的算法。 例如,XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) 可用于签名和密钥交换。
[out] ppValue
一个变量的地址,该变量接收指向表示算法 OID 的 IObjectId 接口的指针。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
尚未指定哈希算法 OID 或 NullSigned 属性,但找不到签名算法 OID。 |
|
找不到组合签名算法。 |
注解
此方法搜索与输入参数一致的缓存签名算法。 如果未找到任何值,则 方法使用输入参数以及分配给各种 IX509SignatureInformation 属性的值,如以下列表所示。
-
Pkcs7Signature = true,NullSigned = true
此情况表示 NULL 签名的 PKCS #7 证书请求。 方法返回 OID) OID XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2。
-
Pkcs7Signature = true,NullSigned = false
这种情况检索非 null 签名的 PKCS #7 请求的离散签名算法 OID。 离散签名要求设置 HashAlgorithm 和 PublicKeyAlgorithm 属性。 在XCN_OID_X957_DSA公钥算法且哈希算法未XCN_OID_OIWSEC_sha1的特殊情况下,检索的签名算法 OID XCN_OID_X957_SHA1DSA (1.2.840.10040.4.3) 。
-
Pkcs7Signature = false,NullSigned = false,AlternateSignatureAlgorithm = true
这种情况检索 PKCS #10 请求的离散签名算法 OID,并在 Parameters 属性中对哈希算法 OID 进行编码。 必须设置 HashAlgorithm 和 PublicKeyAlgorithm 属性。
-
Pkcs7Signature = false,NullSigned = false,AlternateSignatureAlgorithm = false
这种情况检索 PKCS #7 请求的离散签名算法 OID。 必须设置 HashAlgorithm 和 PublicKeyAlgorithm 属性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |
DLL | CertEnroll.dll |