IX509AttributeArchiveKey::InitializeEncode 方法 (certenroll.h)

InitializeEncode 方法从 IX509PrivateKey 对象、证书颁发机构加密证书和对称加密算法对象标识符初始化属性, (OID) 。

语法

HRESULT InitializeEncode(
  [in]           IX509PrivateKey *pKey,
  [in]           EncodingType    Encoding,
  [in]           BSTR            strCAXCert,
  [in, optional] IObjectId       *pAlgorithm,
  [in]           LONG            EncryptionStrength
);

参数

[in] pKey

指向表示密钥的 IX509PrivateKey 接口的指针。

[in] Encoding

一个 EncodingType 枚举值,该值指定应用于包含加密密钥的输入字符串的 Unicode 编码的类型。

[in] strCAXCert

包含证书颁发机构加密证书的 BSTR 变量,该证书包含用于加密私钥的 公钥

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

  • BSTR 必须是十六进制数字的偶数。
  • 忽略十六进制对之间的空格。
  • Encoding 参数必须设置为 XCN_CRYPT_STRING_HEXRAW
  • 仅搜索个人和请求存储以查找私钥。

[in, optional] pAlgorithm

指向 IObjectId 接口的指针,该接口表示用于加密 私钥的对称加密算法的 OID。 此参数是可选的。 如果不提供 OID,则使用XCN_OID_RSA_DES_EDE3_CBC (三重 DES) 。

[in] EncryptionStrength

包含由 pAlgorithm 参数标识的算法的加密强度的 LONG 变量。 当前不使用此参数,因为证书注册 SDK 不支持 OID 尚未暗示) 强度 (密钥长度的任何算法。 例如,AES 具有多个强度,但 OID 已指示每个强度。

返回值

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

如果函数失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

注解

此属性的对象标识符 XCN_OID_ARCHIVED_KEY_ATTR (1.3.6.1.4.1.311.21.13) 。 有关详细信息,请参阅 CERTENROLL_OBJECTID

必须先调用 InitializeEncodeInitializeDecode ,然后才能使用 IX509AttributeArchiveKey 对象。 这两种方法相互补充。 使用 InitializeEncode 方法,可以从原始数据构造编码的抽象语法表示法 One (ASN.1) 结构,而 InitializeDecode 方法使你能够从编码的 ASN.1 结构初始化原始数据。 可以调用以下属性来检索原始数据:

要求

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

另请参阅

IX509AttributeArchiveKey