XMLDSIG。将元素引用指定为XPath表达式

时间:2012-01-10 13:10:36

标签: xml xpath digital-signature

有xml数字签名经验的人,请帮忙。

http://www.w3.org/TR/xmldsig-core/我明白在xmldsig中我可以使用这样的代码

<Signature ..>
  <SignedInfo>
  ...
    <Reference URI="#xpointer(anyXPathExpression)">
    ...

所以,如果我有这样的文件

<Document xmlns="my-document">
  <DocumentData>
    <Name>Nobuo's document</Name>
  </DocumentData>
</Document>

我想要签名元素/Document/DocumentData,我可以使用这样的签名

<Document xmlns="swis-document">
  <DocumentData>
    <Name>Nobuo's document</Name>
  </DocumentData>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      ...
      <Reference URI="#xpointer(/*[local-name()='Document'][1]/*[local-name()='DocumentData'][1])"> 
      ...

我的考虑是对的吗?

我在.Net框架中使用类SignedXml时尝试指定这样的URI。方法ComputeSignatureCryptoGraphicsException:Malformed reference element失败。

我认为SignedXml不支持XPath吗?

0 个答案:

没有答案