包含规范化的XML数字签名

时间:2011-05-31 17:39:50

标签: xml cryptography digital-signature canonicalization xml-signature

我正在尝试实现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)

有关计算有效签名的建议吗?

Pd积。我已将规范化算法更改为EXCLUSIVE并且它可以工作,但要求是使用INCLUSIVE。

提前多多感谢。

1 个答案:

答案 0 :(得分:2)

这是一个建议:确保为所有标记和属性复制正确的命名空间defs。这是一些更多的信息。

http://anilsaldhana.blogspot.com/2009/07/exclusive-versus-inclusive.html http://lists.oasis-open.org/archives/wss/200311/msg00058.html

当然,您真的不应该首先实现自己的XML DigSig库。在您继续之前,我强烈建议您先查看一些开源库。应该有大量的libs来做这种规范化的例子。无论如何,你可能想要对它们进行测试。