問題タブ [signedxml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
86 参照

c# - SignedXml.CheckSignature によって返されるブール値は実際には何を表していますか?

(または) をSignedXml.CheckSignature(AsymmetricAlgorithm key)返す場合、これは正確には何を表していますか?truefalse

Signatureこれは有効であることを意味しますか。または、作成したオブジェクトが、もう一度Signature作成しようとしたときに一致することはありますか?Signature

0 投票する
0 に答える
898 参照

c# - SignedXml.CheckSignature() は常に false

証明書が添付された署名付き XML をサードパーティから受け取りました。また、シリアル番号が同じであることを確認するために、この証明書のコピーをローカルに持っているので、ローカルにあるのと同じ証明書によって XML が署名されていることは確かです。

ただし、SignedXml.CheckSignature() は常に false を返すため、検証は常に失敗します。何故ですか?私が理解していることから、署名された XML には常に署名された証明書のコピーが含まれており、パラメーターのないメソッドはこの証明書に対して署名を検証しようとします。これは常に機能するはずではありませんか?

参考までに: ローカル証明書のコピーを使用した署名の検証も、すべての場合に失敗します。

2016年12月9日編集

さらに調べてみると、署名付き XML は 2 つの変換を使用して署名されていることがわかりますが、検証時に指定できる正規化方法は 1 つだけです。XML の例を以下に添付します。

https://blogs.msdn.microsoft.com/alejacma/2010/08/18/creating-signatures-with-signedxml-following-ebxml-standard/で言及されているように、cid で始まる参照によって問題が発生する可能性はありますか? これはかなり古い記事です。当時とは状況が変わっている可能性があります。

コード: