Я пытаюсь снабдить цифровой подписью 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 там, это прекрасно, и я готов признать что как ответ. Я был бы точно так же, как, чтобы знать, беру ли я излишне твердую дорогу здесь.
Я посмотрел на все варианты подписания файлов XML и решил пойти с нестандартным подходом. Стандарты были слишком многослойными. Кроме того, мне не нужна совместимость со стандартами --- мне просто нужны подписи на блоке XML.
Вероятно, самый простой способ «подписать» блок XML - использовать GPG с отдельным подписью.
Посмотрите на Apache XML Security. Чтобы использовать пакет для генерации и проверки подписи, посмотрите примеры в src_samples/org/apache/xml/security/samples/signature/
.