問題タブ [xml-dsig]
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# - C# - URI 属性のない証明書 XML ドキュメントに署名する方法鬼ごっこ?
<Reference>
タグに URI 属性を渡さずに XML ドキュメントに署名することは可能ですか?
KeyInfoX509Data<Invoice>
証明書を使用するタイプの XML ドキュメント全体と、C# を使用する XAdEs 形式に署名することができました。署名は有効で、trueを返します。問題は、署名の検証を担当するブローカーが、次のような空の属性をサポートしていないことです。SignedXml.CheckSignature()
ドキュメントをブローカーに送信する前に URI 属性を削除することにしましたが、それがないとfalseSignedXml.CheckSignature()
が返されます。署名は URI なしでは無効です。
を呼び出す前に URI 属性を削除しようとしましたSignedXml.ComputeSignature()
が、次の例外が発生しました。
XmlDsigEnvelopedSignatureTransform
これは、クラスを使用して署名を生成する場合、URI 属性が必須であることを意味します。
次に、<Invoice>
タグに Id 属性を設定しようとしました。
これは、タグ<Invoice>
の Id 属性を検索することにより、署名が引き続きドキュメント全体を検証することを意味します。<Reference>
署名が生成され、 true が返されますが、ブローカーはタグSignedXml.CheckSignature()
の属性を許可せず、署名を無効にします。<Invoice>
このような署名を生成する必要があります
署名を生成するために、次のコードを使用しています。このPrefixedSignedXml
クラスは から継承され、メソッドを使用するときに " " 接頭辞SignedXml
を設定するために使用されます。ds:
SignedXml
これは次のPrefixedSignedXml
とおりです。
そして、これは XAdEs 属性を追加するために使用されるメソッドです:
その後、ComputeSignature()
はダイジェストと最初の署名<ds:SignedInfo>
を生成し、最終的な を生成する別のサーバーにタグを渡します<ds:SignatureValue>
。最後に、 をそれ自体に渡し、<SignatureValue>
に<ds:Signature>
追加してXmlDocument
、ブローカーに送信します。
<Reference>
タグに URI 属性を渡さずに XML ドキュメントに署名できるかどうかは誰にもわかりませんか?
プロジェクトは、.NetFramework 4.6 を使用する ClassLibrary です。
私はしばらくの間この問題に直面しています。
java - NoSuchAlgorithmException: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
Java (org.opensaml) で SAML 応答 XML を生成しようとしています。rsa-sha256 アルゴリズムを使用して署名を生成しようとすると、例外が発生します。
正確な理由はわかりません。署名は私には正しいようです。依存関係を追加する必要がありますか? 誰でもこれで私を助けてもらえますか? 署名値も生成するコードを追加しました。