Я пытаюсь подписать цифровой документ XML с помощью Java. У меня есть реализация, работающая с некоторыми ссылками, которые я нашел, которые используют различные реализации в пакете javax.xml.crypto.dsig
.
Тем не менее, моя текущая реализация похожа на много из примеров Я смотрел - это довольно многословно и включает использование не менее 23 различных классов API из java.xml.crypto.dsig
, javax.xml.transform
и java.security
пакеты, среди прочих. Такое ощущение, что я вошел на фабрику фабрика фабрика земля, и мне потребовалось несколько часов, чтобы просто выяснить, что происходит.
У меня вопрос: Есть ли более простой способ сделать это? Если у меня есть файлы с открытым / закрытым ключом и я хочу добавить <Signature/>
в документ XML, есть ли библиотека там, который просто позволяет мне назвать что-то вроде:
OutputStream signFile(InputStream xmlFile, File privateKey)
... без использования XMLSignatureFactory / CanonicalizationMethod / DOMSignContext сумасшествие?
Я не очень разбираюсь в криптографии, и API, предоставляемый Java, кажется довольно пугающим для разработчиков, таких как я, пытающихся ознакомиться с цифровой подписью. Если все это необходимо или в настоящее время нет более дружественного API, это нормально, и я готов принять это как ответ. Я просто хотел бы знать, если я излишне иду по трудному пути здесь.