共用方式為


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) 。
 

如果您在初始化要求物件時指定範本,則 pKIDefaultCSPpKIDefaultKeySpec 等範本屬性會影響集合中最初啟用的提供者/演算法組。 您可以在每個 ICspStatus 物件上呼叫下列屬性,以擷取配對的相關信息:

此方法所擷取的集合會在要求對象內部儲存。 只要 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 物件,才能呼叫此方法。 如需詳細資訊,請參閱下列任一方法:

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 certenroll.h
Dll CertEnroll.dll

另請參閱

ICspAlgorithm

ICspAlgorithms

ICspInformation

ICspInformations

ICspStatus

IX509CertificateRequestPkcs10