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