Существует ли более легкий способ подписать XML-документ в Java?

Я пытаюсь снабдить цифровой подписью XML-документ с помощью Java. У меня есть реализация, работающая с некоторыми ссылками, я нашел, что используют различные реализации в javax.xml.crypto.dsig пакет.

Однако моя текущая реализация похожа на многие примеры, на которые я посмотрел - это является довольно подробным и включает использование не менее 23 различных классов API от java.xml.crypto.dsig, javax.xml.transform, и java.security пакеты, среди других. Такое чувство, что я ввел землю фабрики фабрики фабрики, и мне потребовались несколько часов только для выяснения то, что продолжалось.

Мой вопрос, там более легкий способ сделать это? Если у меня есть общественность/файлы секретных ключей, и я хочу добавить a к XML-документу, там библиотека там, которая просто позволяет мне назвать что-то как:

OutputStream signFile(InputStream xmlFile, File privateKey)

... безо всего XMLSignatureFactory/CanonicalizationMethod/DOMSignContext сумасшествия?

Я не являюсь очень сведущим в криптографии, и обеспеченный Java API кажется довольно пугающим для разработчиков как я пытающийся познакомиться с цифровой подписью. Если все это необходимо или в настоящее время нет никакого более дружественного API там, это прекрасно, и я готов признать что как ответ. Я был бы точно так же, как, чтобы знать, беру ли я излишне твердую дорогу здесь.

18
задан Perception 5 August 2011 в 15:09
поделиться

2 ответа

Я посмотрел на все варианты подписания файлов XML и решил пойти с нестандартным подходом. Стандарты были слишком многослойными. Кроме того, мне не нужна совместимость со стандартами --- мне просто нужны подписи на блоке XML.

Вероятно, самый простой способ «подписать» блок XML - использовать GPG с отдельным подписью.

3
ответ дан 30 November 2019 в 08:38
поделиться

Посмотрите на Apache XML Security. Чтобы использовать пакет для генерации и проверки подписи, посмотрите примеры в src_samples/org/apache/xml/security/samples/signature/.

11
ответ дан 30 November 2019 в 08:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: