CryptXmlOpenToEncode 函数 (cryptxml.h)

如果 CryptXmlOpenToEncode 函数打开要编码的 XML 数字签名,并返回打开的 Signature 元素的句柄。 句柄使用单个 CRYPT_XML_SIGNATURE 结构封装文档上下文,并在调用 CryptXmlClose 函数之前保持打开状态。

语法

HRESULT CryptXmlOpenToEncode(
  [in, optional] const CRYPT_XML_TRANSFORM_CHAIN_CONFIG *pConfig,
                 DWORD                                  dwFlags,
  [in, optional] LPCWSTR                                wszId,
  [in]           const CRYPT_XML_PROPERTY               *rgProperty,
  [in]           ULONG                                  cProperty,
  [in, optional] const CRYPT_XML_BLOB                   *pEncoded,
  [optional]     HCRYPTXML                              *phSignature
);

参数

[in, optional] pConfig

转换链引擎的句柄。 如果此参数为 NULL,则使用默认引擎来应用转换。

dwFlags

一个 DWORD 值,用于控制加载哪些 CryptXML 扩展以及 XML 是否序列化。 此参数的取值可为下列值之一:

含义
CRYPT_XML_FLAG_NO_SERIALIZE
0x80000000
禁止序列化。
注意 当多个线程访问 CryptXml 对象时,不要设置此标志。 当两个或多个线程尝试同时接受 CryptXml 对象或内存时,序列化可确保相互排斥。
 
CRYPT_XML_FLAG_DISABLE_EXTENSIONS
0x10000000
仅使用签名和摘要的默认实现。 设置此标志后,不会加载其他已注册的扩展。

[in, optional] wszId

指向以 null 结尾的 Unicode 字符串的指针,该字符串包含 Signature 元素的 Id 属性。 如果此参数为 NULL,则生成新的 GUID。 如果此参数为空字符串,则不生成 Id 属性。

[in] rgProperty

指向指定其他属性的 CRYPT_XML_PROPERTY 结构的数组的指针。

[in] cProperty

rgProperty 参数指向的数组中的元素数。

[in, optional] pEncoded

指向包含要编码的签名 的CRYPT_XML_BLOB 结构的指针。

[optional] phSignature

Signature 元素的句柄。

返回值

如果函数成功,则函数返回零。

如果函数失败,它将返回指示错误的 HRESULT 值。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 cryptxml.h
Library Cryptxml.lib
DLL Cryptxml.dll