Так примера-то почти и нет. Все сделано при помощи SDK (пока).
1. Открываю \SDK_2.0-02.08.2016\NCALayer\sample\index.html
2. Выбираю ключ \SDK_2.0-02.08.2016\Keys and Certs\Текущий НУЦ\первый руководитель ДЕЙСТВУЮЩИЙ\GOSTKNCA_c025b4e0f8b1c26de1e381d7771f5f8d407ba76b.p12
3. Копирую (убрав все лишние символы) xml
<?xml version='1.0' encoding='utf-8'?><root><last_name>admin</last_name><first_name>admin2</first_name></root>
и вставляю в "XML для подписи(signXML)", получаю подписанную xml, где меня интересует:
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34311"/>
<ds:DigestValue>ZYffHE1u7regSQJ14cOLuu88Iro6GQNzK8j6ubmVyLg=</ds:DigestValue>
Затем канонизирую при помщи стороннего сервиса (ссылка уже была ниже) и убираю скрытые символы
<root><last_name>admin</last_name><first_name>admin2</first_name></root>
и пытаюсь получить хеш этой строки на форме в разделе "Получить Хэш данных по указанному алгоритму(getHash):" Указываю Гост и вставляю свой канонизированный xml и получаю следующий хеш:
6587df1c4d6eeeb7a0490275e1c38bbaef3c22ba3a1903732bc8fab9b995c8b8
что в base64 дает:
NjU4N2RmMWM0ZDZlZWViN2EwNDkwMjc1ZTFjMzhiYmFlZjNjMjJiYTNhMTkwMzczMmJjOGZhYjliOTk1YzhiOA==
И он не равен DigestValue. На каком этапе у меня ошибка?
PS Если с хешем не выйдет придется сравнивать с данными из xml, но лучше б вышло)