IX509CertificateRequestPkcs10::get_CspStatuses 方法 (certenroll.h)

CspStatuses 属性检索与与证书请求关联的私钥的预期用途匹配的 ICspStatus 对象的集合。

此属性为只读。

语法

HRESULT get_CspStatuses(
  ICspStatuses **ppValue
);

参数

ppValue

返回值

备注

此属性检索 ICspStatus 对象的集合。 每个对象表示单个提供程序/算法对。 CspStatuses 属性不同于 GetCspStatuses 方法。 使用 方法可以设置 KeySpec 参数,但 CspStatuses 使用与 IX509CertificateRequestPkcs10 对象关联的私钥上设置的 KeySpec 属性。 这可以是以下值之一。

说明
XCN_AT_NONE 仅选择加密 API:下一代 (CNG) 提供程序。
XCN_AT_KEYEXCHANGE 仅选择加密算法 (包括密钥交换) 在内的加密算法 (CSP (CS) P。
XCN_AT_SIGNATURE 仅选择使用签名算法) (CSP 的 CryptoAPI 加密服务提供程序。
 

如果在初始化请求对象时指定模板,则模板属性(如 pKIDefaultCSPpKIDefaultKeySpec) 会影响最初在集合中启用的提供程序/算法对。 可以对每个 ICspStatus 对象调用以下属性来检索有关对的信息:

此方法检索到的集合在内部保存在请求对象上。 只要 PKCS #10 对象继续存在,集合就存在。

例如,假设与请求对象关联的私钥上的 KeySpec 属性设置为 XCN_AT_SIGNATURE并使用模板初始化请求。 以下陈述是正确的:

  • ICspStatus 对象的集合在 IX509CertificateRequestPkcs10 对象上创建并保存。 集合包含计算机上安装的所有有效提供程序/算法对。
  • 由于 KeySpec 属性未设置为 XCN_AT_NONE,因此对于集合中的每个加密 API,Selected 属性设置为 SelectedNo:下一代 (CNG) 提供程序/算法对。
  • 由于 KeySpec 属性未设置为 XCN_AT_KEYEXCHANGE,因此集合中的每个 CryptoAPI CSP/算法对的 Selected 属性设置为 SelectedNo,该算法只能用于加密数据或存档密钥。
  • 对于模板或私钥引用但计算机上不支持的每个提供程序,将创建占位符 ICspStatus 对象并将其添加到集合中,并将 Selected 属性设置为 SelectedNo。
  • 对于每个 CryptoAPI CSP/算法对, Selected 属性设置为 SelectedYes,其中算法只能用于对数据进行签名。
  • Ordinal 属性设置为反映由 pKIDefaultCSP 模板属性标识的 CSP 顺序(如果有)。 属性首先列出的 CSP 在集合中先排序。 如果必须创建私钥,则此属性在注册期间使用。 第一个选定的 CSP/算法对用于创建密钥,但如果操作失败,将尝试下一个所选对。

在调用此方法之前,必须初始化 IX509CertificateRequestPkcs10 对象。 有关详细信息,请参阅以下任一方法:

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h
DLL CertEnroll.dll

另请参阅

ICspAlgorithm

ICspAlgorithms

ICspInformation

ICspInformations

ICspStatus

IX509CertificateRequestPkcs10