ISignerCertificate::Initialize 方法(certenroll.h)

Initialize 方法从签名证书初始化对象。

Syntax

HRESULT Initialize(
  [in] VARIANT_BOOL         MachineContext,
  [in] X509PrivateKeyVerify VerifyType,
  [in] EncodingType         Encoding,
  [in] BSTR                 strCertificate
);

参数

[in] MachineContext

一个VARIANT_BOOL变量,指示是搜索本地计算机证书存储上下文还是用户上下文来查找 strCertificate 参数标识的证书。 为计算机指定 VARIANT_TRUE ,并为用户指定 VARIANT_FALSE

[in] VerifyType

X509PrivateKeyVerify 枚举值,该值指定是否必须验证用于对证书进行签名的私钥,如果是,验证必须是无提示还是允许用户输入。

[in] Encoding

一个 EncodingType 枚举值,该值指定应用于可分辨编码规则(DER)编码证书字符串的 Unicode 编码的类型。

[in] strCertificate

包含 DER 编码证书的 BSTR 变量。

从 Windows 7 和 Windows Server 2008 R2 开始,可以指定证书指纹或序列号,而不是编码的证书。 这样做会导致函数搜索匹配证书的相应本地存储。 请注意以下几点:

  • BSTR 必须是十六进制数字的偶数。
  • 忽略十六进制对之间的空格。
  • 编码参数必须设置为XCN_CRYPT_STRING_HEXRAW
  • MachineContext 参数确定是搜索用户还是计算机存储,还是同时搜索这两者。
  • 如果需要私钥,则仅搜索个人和请求存储。
  • 如果不需要私钥,还会搜索根和中间 CA 存储。

返回值

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

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

返回代码/值 Description
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
ISignerCertificate 对象已初始化。

注解

Initialize 方法:

在调用 Initialize 之前设置以下属性:

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows操作系统
Header certenroll.h
DLL CertEnroll.dll

另请参阅

ISignerCertificate