为了账号安全,请及时绑定邮箱和手机立即绑定

使用 XadesBes 时间戳封装签名

使用 XadesBes 时间戳封装签名

眼眸繁星 2023-08-16 16:34:50
我正在尝试传递给一个函数并使用根标签<NextMsg ID="Edoc">2019-09-20T14:57:46</NextMsg>中包含的数字签名对其进行签名<EDoc></Edoc>这是预期的结果:<?xml version="1.0" encoding="UTF-8"?><EDoc>    <NextMsg ID="Edoc">2019-09-20T14:57:46</NextMsg>    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="DS_A2B2112853C1478C8860CB8DC6FA23D2">        <SignedInfo>            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>            <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>            <Reference URI="">                <Transforms>                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>                </Transforms>                <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>                <DigestValue>op0/fC+H5/0h7AGdUiEaNnNzd9WXs3VDouQQhRk8XgU=</DigestValue>            </Reference>            <Reference URI="#SP_A2B2112853C1478C8860CB8DC6FA23D2" Type="http://uri.etsi.org/01903/v1.1.1#SignedProperties">                <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>                <DigestValue>Kv75qkIImVnf9H7PZV+1er1n8YIBY5yRGXdpWSUIAX4=</DigestValue>            </Reference>        </SignedInfo>        <SignatureValue>=sign-value=</SignatureValue>        <ds:Object xmlns="http://uri.etsi.org/01903/v1.1.1#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">            <QualifyingPropertiesReference URI="http://www.test.com"/>            <QualifyingProperties Target="#DS_A2B2112853C1478C8860CB8DC6FA23D2">                <SignedProperties Id="SP_A2B2112853C1478C8860CB8DC6FA23D2">                    <SignedSignatureProperties>                        <SigningTime>2019-09-20T14:57:48+03:00</SigningTime>                        <SigningCertificate>
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

XadesSigner.sign将添加签名作为所提供元素的子元素。既然你说你正在传递<NextMsg>...字符串参数,那么输出就应该是这样的。

要重现您想要的输出,您可能应该将<tDoc><NextMsg>...文档节点传递并传递给sign方法 ( <tDoc),以便将签名附加到它。如果您需要更多控制,您可以使用允许sign指定将签名附加到文档的不同方式的重载SignatureAppendingStrategies.lastChild(例如)

旁注:您可能想让文档构建器工厂名称空间感知。


查看完整回答
反对 回复 2023-08-16
  • 1 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信