Кто-то, кто имеет опыт работы с цифровой подписью 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])">
...
Прав ли я в своих соображениях?
Я пытался указать такой URI при использовании класса SignedXml в .Net Framework.И метод ComputeSignature
не удался с CryptoGraphicsException:Malformed reference element
.
SignedXml не поддерживает XPath, я полагаю?