#java #xml #eclipse #digital-signature #canonicalization
Вопрос:
Итак, в коде у меня есть это:
outputStream.write(Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS).canonicalizeSubtree(doc));
return outputStream;
И, очевидно, метод канонизации цифровой подписи, который мне нужен в выводе XML, таков http://www.w3.org/2001/10/xml-exc-c14n#
.
Однако, что бы я ни делал, вывод XML канонизируется с http://www.w3.org/TR/2001/REC-xml-c14n-20010315
помощью . Это строка в XML:
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
Когда я изменяю код Java для запроса ALGO_ID_C14N_WITH_COMMENTS
, я получаю идентичный вывод, как и в этом случае.
Я определенно сохранил изменения в коде Java, и я абсолютно точно смотрю на правильный выходной файл. Что происходит? Я могу поделиться остальной частью кода, если проблема может быть в другом месте.
Комментарии:
1. Итак, как оказалось, я не единственный, у кого была именно эта проблема, так что я предполагаю, что это какая-то ошибка, поскольку решения пока не найдено. Я решил проблему, используя xmlsec1 через командную строку для подписи XML вместо этого, так что это моя рекомендация, если вы окажетесь в такой ситуации (вы можете увидеть сообщение, которое я сделал после этого, для получения более подробной информации) — я не публикую это как ответ, так как технически это не отвечает на вопрос.