問題タブ [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.
c# - SignedXml.CheckSignature によって返されるブール値は実際には何を表していますか?
(または) をSignedXml.CheckSignature(AsymmetricAlgorithm key)
返す場合、これは正確には何を表していますか?true
false
Signature
これは有効であることを意味しますか。または、作成したオブジェクトが、もう一度Signature
作成しようとしたときに一致することはありますか?Signature
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 で始まる参照によって問題が発生する可能性はありますか? これはかなり古い記事です。当時とは状況が変わっている可能性があります。
コード: