XML签名可以是根节点下的最后一个子元素吗?

时间:2013-09-27 10:06:08

标签: xml xmlsec

根据可以在http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/#sec-Overview找到的w3c xmlsec规范,我想知道我们是否允许将xml签名元素添加为根节点下的最后一个子元素?

我试图阅读规范,但是没有明确提到我们应该在哪个位置添加签名元素。我想知道spec是否强调我们应该在哪里添加签名元素?

1 个答案:

答案 0 :(得分:1)

规范没有强调签名元素的特定位置。 URI机制允许任何位置;特别是以下设置:

  • 已签名的签名您的ds:签名是文档根目录(已签名的根目录)的后代:

<SignedDocumentRoot>
....
    <ds:Signature>....</ds:Signature>
</SignedDocucmentRoot>

<SignedDocumentRoot> .... <ds:Signature>....</ds:Signature> </SignedDocucmentRoot>

在此设置中,您必须使用规范中定义的Enveloped Transform。 请注意,ds:Signature可能是最后一个孩子,但这不是必需的。

  • 包络签名您的文档根目录(已签名的根目录)是ds:Signature:
  • 的后代

<ds:Signature>
....
    <ds:Object>
        <SignedDocumentRoot>...</SignedDocumentRoot>
    </ds:Object>
</ds:Signature>

ds:Object在规范中定义。在这里,不需要特殊的转换。