ICspInformation::GetCspStatusFromOperations 方法 (certenroll.h)

GetCspStatusFromOperations 方法为第一个受支持的算法创建 ICspStatus 对象,该算法与指定的签名、加密、哈希或密码操作一致。

语法

HRESULT GetCspStatusFromOperations(
  [in, optional] IObjectId               *pAlgorithm,
  [in]           AlgorithmOperationFlags Operations,
  [out]          ICspStatus              **ppValue
);

参数

[in, optional] pAlgorithm

指向表示算法 OID 的 IObjectId 接口的指针。 此参数是可选的,可以为 NULL

  • 如果指定 OID 并将 Operations 参数设置为 XCN_NCRYPT_SIGNATURE_OPERATION 并将此标志与XCN_NCRYPT_EXACT_MATCH_OPERATION或XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION合并,则使用与 OID 匹配的第一个签名算法(如果有)。
  • 如果指定 OID 但未将 Operations 参数设置为 XCN_NCRYPT_SIGNATURE_OPERATION,或者设置了 XCN_NCRYPT_SIGNATURE_OPERATION 但不将其与XCN_NCRYPT_EXACT_MATCH_OPERATION或XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION组合,则使用第一种可用于签名或加密的算法。
  • 如果未指定 OID,则使用与 Operations 参数中指定的标志一致的第一个受支持的算法。

[in] Operations

一个 AlgorithmOperationFlags 枚举值,该值标识要检索的算法类型。 必须指定以下值之一:

  • XCN_NCRYPT_CIPHER_OPERATION
  • XCN_NCRYPT_HASH_OPERATION
  • XCN_NCRYPT_SIGNATURE_OPERATION
  • XCN_NCRYPT_SECRET_AGREEMENT_OPERATION
  • XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION

可以通过将上述标志之一与以下标志之一相结合来优化搜索特征:

  • XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION
  • XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION
  • XCN_NCRYPT_EXACT_MATCH_OPERATION

如果设置XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION或XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION首选项标志,则也不能指定以下任一项:

  • XCN_NCRYPT_CIPHER_OPERATION
  • XCN_NCRYPT_HASH_OPERATION

[out] ppValue

接收指向 ICspStatus 接口的指针的变量的地址。

返回值

如果函数成功,该函数将返回 S_OK

如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码/值 说明
CERTSRV_E_PROPERTY_EMPTY
找不到 ICspStatus 对象。
OLE_E_BLANK
ICspInformation 对象尚未初始化。

注解

ICspStatus 对象包含有关加密提供程序的状态信息。 每个 对象都针对提供程序支持的特定算法进行初始化。 如果未在 pAlgorithm 参数中指定算法,则会选择与允许的操作一致的第一个受支持的算法来创建 ICspStatus 对象。

要求

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

另请参阅

ICspInformation