Добрый день.
Подписывая xml документ через пример из SDK
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<note>
<to>Вася</to>
<from>Света</from>
<heading>Напоминание</heading>
<body>Позвони мне завтра!</body>
</note>
я получаю такой результат:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<note>
<to>Вася</to>
<from>Света</from>
<heading>Напоминание</heading>
<body>Позвони мне завтра!</body>
<ds:Signature xmlns:ds="
www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
...
</ds:SignedInfo>
<ds:SignatureValue>
...
</ds:SignatureValue>
<ds:KeyInfo>
...
</ds:KeyInfo>
</ds:Signature>
</note>
После, проверка подписи и исходного документа дает отрицательный результат. Сервис проверяющий подпись, реализован на PHP с использованием класса openssl. Пробовал использовать стороннюю библиотеку (в частности
phpseclib.sourceforge.net) - результат проверки отрицательный. Хотя если подписывать документ и проверять подпись средствами PHP, в обоих случаях (и openssl и phpseclib) результаты проверки положительные.
Отсюда возникло подозрение, что для проверки нужно брать не исходный документ, а документ с элементами подписи. Вот только возникает вопрос все ли поля там нужны.
Вы можете как-то прокомментировать, что именно подписывается в примере из SDK? Пробовал разбирать пример на Java, и как мне показалось, что перед подписанием в документ добавляются какие-то поля (хотя могу ошибаться, ибо в Java не силен).
Заранее благодарю за ответ.