gpt4 book ai didi

xml - 使用封装签名时放置签名

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:32 25 4
gpt4 key购买 nike

我需要使用 "XML Signature" 对整个 XML 文档进行签名标准。要求是签名必须放在已签名的文档中。

我这样做的方法是使用封装签名。令我困惑的是关于签名元素放置的实际要求。在查看示例时,似乎最常见的做法是将签名元素放置为根元素的子元素,并使其成为最后一个子元素,如下所示:

<?xml version="1.0"?>
<myRootElement>
<someChildElement></someChildElement>

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
<ds:Reference URI="" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
</ds:Signature>

</myRootElement>

我想知道的是:关于展示位置的具体要求是什么?它必须作为根元素的子元素放置还是允许它只是根元素的后代?像这样:

<?xml version="1.0"?>
<myRootElement>
<someChildElement>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
<ds:Reference URI="" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
...
</ds:Signature>
</someChildElement>
</myRootElement>

我试图从规范本身来理解这一点,但我没有这样做(可能是因为英语不是我的母语)。非常感谢您对此的投入!提前致谢!

最佳答案

在阅读标准时,我们发现以下定义:

Signature, Enveloped The signature is over the XML content that contains the signature as an element. The content provides the root XML document element. Obviously, enveloped signatures must take care not to include their own value in the calculation of the SignatureValue.

它基本上是说封装的签名必须是被签名元素的子元素。

如果您使用嵌入式签名对某个深埋节点进行签名,则签名 block 将进入该节点。

关于xml - 使用封装签名时放置签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com