Как сгенерировать 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 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.