Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2015(UTC) Сообщений: 33 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Здравствуйте. Я запустил ваш пример("SMEVExample") и он отработал нормально, после проверки на портале смэв, подпись корректна. На основе вашего примера, я написал подписание ответа, но в строке связанной с поиском BinarySecurityToken по id Код:Element cerVal = (Element) XPathAPI.selectSingleNode(token, "//*[@wsu:Id='SenderCertificate']");
выпадает ошибка NullPointerException, тогда я сделал альтернативу, при которой строка стала Код:Element cerVal = (Element) token.getElementsByTagName("wsse:BinarySecurityToken").item(0);
Но при проверке на сервисе смэв, пишет, что подпись некорректная Может ли из-за этого быть ошибка в подписи? Отредактировано пользователем 20 февраля 2017 г. 9:41:47(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2015(UTC) Сообщений: 33 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Добавил перед подписыванием следующую строку: Код:header.getSecurityHeader().setAttribute("xmlns:wsse", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
теперь не падает NullPointerException и файл подписывается, но при сверке всё равно выдаёт "Неверная ЭП сообщения" Не помог способ, видать не обновил/сохранил что-то при выполнение Отредактировано пользователем 21 февраля 2017 г. 7:49:48(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 15.05.2015(UTC) Сообщений: 33 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал(а) «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Если локальная проверка проходит, то как можно ещё убедиться в правильности подписи? На сайте СМЭВ указывается, что "Неверная ЭП сообщения". Они описываю алгоритм проверки:
Проверка подписи происходит следующим образом: - в СМЭВ поступает запрос; - канонизируется элемент SignedInfo с помощью алгоритма c14n; - далее расшифровывается SignatureValue с помощью открытого ключа сертификата – x1; - берется SignedInfo и считается от него хэш – x2, если x1 не равен x2, СМЭВ возвращает ошибку «Неверная ЭП сообщения. Если же х1 = х2, то проверка переходит на следующий шаг; - считается хэш от body запроса – y1 по методу указанному в DigestMethod. Из DigestValue получаем – y2. Если y1 не равен y2, то СМЭВ возвращает ошибку "Неверная ЭП сообщения".
Такой алгоритм есть в примерах к JCP?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close