我对签名的引用和转换XML困惑
在进行相同文档引用时,是否有任何法律URI期望“”和“#object tid”?
和
在签名包络签名时,取消引用后,应该先应用C14N还是包络变换?(虽然看起来没有区别)
谢谢你们
对于同文档引用,合法URI也由XPointer框架定义,因此可能还有其他URI而不是您提到的典型URI。
“包络”变换是一种变换,其输入是节点集,也产生节点集。输入节点集通过取消引用URI属性隐式给出,结果将是另一个节点集,其中包含变换的签名元素被删除。
为了能够计算计算签名值所需的报文摘译,必须首先将节点集转换为“八位字节流”。这就是C14N所做的。您可以应用显式声明的C14N转换,或者,如果没有指定,则应用隐式C14N 1.0转换(参见XML签名语法和处理版本1.1):
如果转换的URI取消引用和应用程序的结果是XPath节点集(或应用程序实现的充分功能替换),则必须按照引用处理模型部分4.4.3.2描述进行转换。
和
如果数据对象是节点集并且下一次转换需要八位字节,则签名应用程序必须尝试使用规范XML[XML-C14N]将节点集转换为八位字节流。
同样重要的是,以文档中出现的相同顺序应用转换,如果以任意顺序应用它们,很可能会产生错误的结果。