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 值。
傳回碼/值 | Description |
---|---|
|
尚未指定哈希演算法 OID 或 NullSigned 屬性,但找不到簽署演算法 OID。 |
|
找不到合併的簽章演算法。 |
備註
這個方法會搜尋與輸入參數一致的快取簽署演算法。 如果找不到任何值,方法會使用輸入參數加上指派給各種 IX509SignatureInformation 屬性的值,如下列清單所示。
-
Pkcs7Signature = true,NullSigned = true
此案例代表 Null 簽署的 PKCS #7 憑證要求。 方法會傳回 XCN_OID_PKIX_NO_SIGNATURE (1.3.6.1.5.5.7.6.2) OID。
-
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 |