IX509CertificateRequestPkcs10::get_CspStatuses 方法 (certenroll.h)
CspStatuses 屬性會擷取 ICspStatus 物件的集合,該物件符合與憑證要求相關聯之私鑰的用途。
這個屬性是唯讀的。
語法
HRESULT get_CspStatuses(
ICspStatuses **ppValue
);
參數
ppValue
傳回值
無
備註
這個屬性會擷取 ICspStatus 物件的集合。 每個物件都代表單一提供者/演算法組。 CspStatuses 屬性與 GetCspStatuses 方法不同。 方法可讓您設定 KeySpec 參數,但 CspStatuses 會使用與 IX509CertificateRequestPkcs10 對象相關聯的私鑰上設定的 KeySpec 屬性。 這可以是下列其中一個值。
值 | Description |
---|---|
XCN_AT_NONE | 只有密碼編譯 API:已選取新一代 (CNG) 提供者。 |
XCN_AT_KEYEXCHANGE | 只會選取具有加密演算法的 CryptoAPI 密碼編譯服務提供者 (CSP) , (包括密鑰交換) 。 |
XCN_AT_SIGNATURE | 只會選取具有簽章演算法的 CryptoAPI 密碼編譯服務提供者 (CSP) 。 |
如果您在初始化要求物件時指定範本,則 pKIDefaultCSP 和 pKIDefaultKeySpec 等範本屬性會影響集合中最初啟用的提供者/演算法組。 您可以在每個 ICspStatus 物件上呼叫下列屬性,以擷取配對的相關信息:
- CspInformation 屬性會擷取提供者資訊。
- CspAlgorithm 屬性會擷取演演算法資訊。
- EnrollmentStatus 屬性會擷取 IX509EnrollmentStatus 物件。 呼叫 status 物件上的 Selected 屬性,以判斷是否為此要求啟用提供者/演算法組。
- Ordinal 屬性會擷取提供者/演算法組集合中的位置。
此方法所擷取的集合會在要求對象內部儲存。 只要 PKCS #10 物件持續存在,集合就會存在。
例如,假設與要求對象相關聯之私鑰上的 KeySpec 屬性會設定為 XCN_AT_SIGNATURE,而且範本會用來初始化要求。 下列語句為 true:
- ICspStatus 物件的集合會建立並儲存在IX509CertificateRequestPkcs10 物件上。 集合包含計算機上安裝的所有有效提供者/演算法組。
- 因為 KeySpec 屬性未設定為 XCN_AT_NONE,所以 Selected 屬性會針對集合中的每個密碼編譯 API 設定為 SelectedNo :新一代 (CNG) 提供者/演算法組。
- 由於 KeySpec 屬性未設定為 XCN_AT_KEYEXCHANGE,因此針對集合中的每個 CryptoAPI CSP/演算法組,Selected 屬性會設定為 SelectedNo ,其中演算法只能用來加密數據或封存密鑰。
- 針對範本或私鑰所參考但計算機上不支援的每個提供者,會建立佔位元 ICspStatus 物件,並新增至集合,並將 Selected 屬性設定為 SelectedNo 。
- Selected 屬性會針對每個 CryptoAPI CSP/演算法組設定為 SelectedYes ,其中演算法只能用來簽署數據。
- Ordinal 屬性會設定為反映 CSP 順序,如果有的話,pKIDefaultCSP 範本屬性所識別。 屬性所列出的 CSP 會先在集合中排序。 如果必須建立私鑰,這個屬性會在註冊期間使用。 第一個選取的 CSP/演算法組是用來建立金鑰,但如果作業失敗,則會嘗試下一個選取的配對。
您必須先初始化 IX509CertificateRequestPkcs10 物件,才能呼叫此方法。 如需詳細資訊,請參閱下列任一方法:
- InitializeDecode
- InitializeFromCertificate
- InitializeFromPrivateKey
- InitializeFromPublicKey
- InitializeFromTemplateName
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | certenroll.h |
Dll | CertEnroll.dll |