Может ли XML-подпись быть последним дочерним элементом в корневом узле?

Согласно спецификации w3c xmlsec, которую можно найти по адресу http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/#sec-Overview , я хотел бы знать, разрешено ли нам добавлять элемент подписи xml в качестве последнего дочернего элемента в корневой узел?

Я попытался прочитать спецификацию, но в ней явно не указано, в какое место мы должны добавить элемент подписи. Я хотел бы знать наверняка, подчеркивает ли спецификация, где мы должны добавить элемент подписи?


person Vinod Jayachandran    schedule 27.09.2013    source источник


Ответы (1)


Спецификация не выделяет конкретное место для элемента подписи. Механизм URI допускает любое местоположение; в частности следующие настройки:

  • Подпись в оболочке ваша ds:Signature является потомком корня вашего документа (подписанного корня):

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

В этом параметре вы должны использовать Enveloped Transform, определенный в спецификации. Обратите внимание, что ds:Signature может быть последним дочерним элементом, но это не обязательно.

  • Подпись конверта корень вашего документа (подписанный корень) является потомком ds:Signature :

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

ds:Object определен в спецификации. Здесь не требуется никакого специального преобразования.

person Moez    schedule 01.10.2013