問題タブ [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.

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

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 です。

私はしばらくの間この問題に直面しています。

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

java - NoSuchAlgorithmException: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256

Java (org.opensaml) で SAML 応答 XML を生成しようとしています。rsa-sha256 アルゴリズムを使用して署名を生成しようとすると、例外が発生します。

正確な理由はわかりません。署名は私には正しいようです。依存関係を追加する必要がありますか? 誰でもこれで私を助けてもらえますか? 署名値も生成するコードを追加しました。