Как сгенерировать ws-security подпись с кастомным алгоритмом
От: vsb Казахстан  
Дата: 23.05.19 20:56
Оценка:
В Казахстане может использоваться местный алгоритм ГОСТ для криптографии (вероятно передран с российского). Для него используется свой криптопровайдер Kalkan (для Java). Мне нужно подписывать SOAP-сообщение с помощью этих алгоритмов. У них есть некий плагин для библиотеки Apache Santuario Xmlsec. Есть код примера, но там вся работа идёт с XML Security. Т.е. добавляется только тег ds:Signature, никакой связи с web service security. В web service security всё очень похоже, но набор тегов в некоторых местах немного отличается.

Я долго ковырялся с wss4j, но в конце концов упёрся в то, что список алгоритмов там захардкоден в org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory#newSignatureMethod. Почему — непонятно, там ведь список алгоритмов должен быть расширяемым.

Погуглив про то, как россияне борются с этими проблемами, я понял, что КриптоПро пошли дальше и сделали свою реализацию XMLSignatureFactory.

В общем вопрос — правильно ли я понимаю, что мне надо сейчас писать некий KalkanXMLSignatureFactory и переопределять класс WSSecSignature (в котором он используется), вероятно используя дизассемблированный код от CryptoProXMLDSig?

Принимаются любые пожелания, как это всё сделать. Я даже думал о том, чтобы сгенерировать эту злосчастную подпись через xml security и потом тупо теги поменять. Но подозреваю, что теги самой подписи тоже входят в подпись и это её инвалидирует.
Отредактировано 23.05.2019 20:58 vsb . Предыдущая версия .
Re: Как сгенерировать ws-security подпись с кастомным алгори
От: vsb Казахстан  
Дата: 24.05.19 11:09
Оценка: 1 (1)
Разобрался. Если откатить версию wss4j до 1.5, то там для подписи не используется стандартный XML Digital Signature API, а используется Apache XML Security for Java (Santuario). И при этом есть возможность подцепить этот калкан и в первом приближении вроде бы всё даже работает. Цифровая археология, блин.
Отредактировано 24.05.2019 11:09 vsb . Предыдущая версия .
Re[2]: Как сгенерировать ws-security подпись с кастомным алгори
От: GiDRAvlic Латвия  
Дата: 25.05.19 10:49
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Разобрался. Если откатить версию wss4j до 1.5, то там для подписи не используется стандартный XML Digital Signature API, а используется Apache XML Security for Java (Santuario). И при этом есть возможность подцепить этот калкан и в первом приближении вроде бы всё даже работает. Цифровая археология, блин.


Привет! Хотел поразбираться, но вы сгенерировали n-е количество времени для отдыха
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.