2

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>

CRLF の代わりに CR のみを使用します。インデント用のスペースなし (投稿のタグ間にスペースがある場合は、CR があります)

有効な署名を計算するための提案はありますか?

PD Canonicalization Algorithm を EXCLUSIVE に変更しましたが、動作しますが、要件は INCLUSIVE を使用することです。

よろしくお願いします。

4

1 に答える 1

2

ここに提案があります: すべてのタグと属性に対して正しい名前空間定義をコピーするようにしてください。ここにいくつかの詳細情報があります。

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

もちろん、そもそも独自の XML DigSig ライブラリを実装するべきではありません。続行する前に、いくつかのオープン ソース ライブラリを確認することを強くお勧めします。この種の正規化を行うライブラリの例はたくさんあるはずです。とにかくそれらに対してテストしたいかもしれません。

于 2011-06-04T01:30:14.680 に答える