Я сделал две реализации, которые должны делать то же самое: подписать файл XML с данным сертификатом X509.
- Первый, который я сделал с нативным API цифровой подписи XML Java (из javax.xml.crypto.dsi).
- Второй вариант, который я реализовал в Kotlin (моя цель - запустить его в Android), используя Apache Santuario XML Security версии 2.0.3.
Произошло то, что для того же XML-файла, который должен быть подписан, он генерирует разные значения для SignatureValue. Но все остальные свойства XML точно такие же:
- DigestValue одинаковы, что свидетельствует о том, что файлы идентичны.
- KeyInfo / X509Data / X509Certificate равны, поэтому сертификат точно такой же.
- Алгоритмы CanonicalizationMethod, SignatureMethod, DigestMethod и Transform абсолютно одинаковы.
Я пытался даже для небольшого XML (например, только тег ), но SignatureValue никогда не совпадает.
Есть ли случаи совпадения всех данных из тега , кроме SignatureValue?