使用 XadesBes 时间戳封装签名

我正在尝试传递给一个函数并使用根标签<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>


眼眸繁星
浏览 108回答 1
1回答

明月笑刀无情

XadesSigner.sign将添加签名作为所提供元素的子元素。既然你说你正在传递<NextMsg>...字符串参数,那么输出就应该是这样的。要重现您想要的输出,您可能应该将<tDoc><NextMsg>...文档节点传递并传递给sign方法 ( <tDoc),以便将签名附加到它。如果您需要更多控制,您可以使用允许sign指定将签名附加到文档的不同方式的重载SignatureAppendingStrategies.lastChild(例如)旁注:您可能想让文档构建器工厂名称空间感知。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java