Цифровая подпись XML с инклюзивной канонализацией - PullRequest
2 голосов
/ 31 мая 2011

Я пытаюсь реализовать подпрограмму для цифровой подписи XML и могу правильно вычислить хэш информации, которая должна быть подписана. Однако у меня возникают проблемы с самой подписью, поскольку мне не удается создать настоящую строку для подписи.

Прямо сейчас у меня есть это:

<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315">&lt;/CanonicalizationMethod>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
<DigestValue>eDSx9uS7oB++bnG/6tGiD/l8374=</DigestValue>
</Reference>
</SignedInfo>

Использование только CR вместо CRLF. Нет пробелов для отступов (там, где пост показывает пробел между тегами, есть CR)

Есть предложения по подсчету действительной подписи?

P.D. Я изменил алгоритм канонизации на ИСКЛЮЧИТЕЛЬНЫЙ, и он работает, но требуется использовать ВКЛЮЧЕНО.

Заранее большое спасибо.

1 Ответ

2 голосов
/ 04 июня 2011

Вот предложение: убедитесь, что вы скопировали правильные определения пространства имен для всех тегов и атрибутов. Вот еще немного информации.

http://anilsaldhana.blogspot.com/2009/07/exclusive-versus-inclusive.html http://lists.oasis -open.org / архив / WSS / 200311 / msg00058.html

Конечно, вы действительно не должны в первую очередь реализовывать свою собственную библиотеку XML DigSig. Я настоятельно рекомендую вам взглянуть на некоторые библиотеки с открытым исходным кодом, прежде чем продолжить. Там должно быть достаточно примеров библиотек, которые делают этот вид канонизации. В любом случае вы можете проверить их.

...