問題タブ [xades4j]
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.
java - XADES4J-変更方法他のIDに
Xades4J(Xades-BES)を使用してXMLドキュメントに署名すると、次のようなXMLを含む署名済みドキュメントが表示されます。
<ds:Object Encoding="UTF-8" Id="xmldsig-1ddcf1ab-7648-4039-b166-69e14da39982-object0" MimeType="text/xml">
....
</ds:Object>
私はに変更Id="xmldsig-1ddcf1ab-7648-4039-b166-69e14da39982-object0"する必要がありますId="Dokument-0"
どうやってやるの ?
すべての回答に感謝し、私の悪い英語をお詫びします。ダレク
xades4j - Xades4J署名の検証中にエラーが発生しました:プロパティ'SigningCertificate'の検証に失敗しました:プロパティに含まれる証明書が多すぎます
同じキーストア(およびXA)を使用する前に作成した署名を検証すると、次の例外が発生します。
プロパティ'SigningCertificate'の検証に失敗しました:SigningCertificateプロパティに、証明書パスの一部ではない1つ以上の証明書が含まれています。
私は次の証明書チェーンを使用しています:
- ルート-CA(globalsign)、
- 中間証明書
- 会社の証明書
- プロジェクト証明書
すべての証明書は、使用済みのキーストアに保存されます。
ただし、自己署名証明書で同じことを試してみると、それだけが機能し、証明書をcerts-and-crls-directoryにも配置する必要がありました。
KeyingDataProvider:
CertificateValidationProvider:
キーストアに関するフィードバック
signing-keystoreには、4つの証明書がすべて含まれています。検証キーストアには、ルート証明書(globalsign-root-ca)のみが含まれます。certs-directoryには、ルート(globalsign-root-ca)以外のすべての証明書が含まれています。次に、次のエラーが発生します。
原因:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な認証パスが見つかりません
署名(ファイルシステムコピー)と同じキーストアを使用すると、次のエラーが発生します。
原因:xades4j.verification.SigningCertificateCertsNotInCertPathException:プロパティ'SigningCertificate'の検証に失敗しました:SigningCertificateプロパティに、証明書パスの一部ではない1つ以上の証明書が含まれています。
java - PKCS#11を使用してHSMで署名を作成できますか?
PKCS#11インフラストラクチャを使用して署名の作成をハードウェアセキュリティモジュール(HSM)に委任するようにXAdES4Jを構成できますか?はいの場合-どのように?
これらのサイトの情報では、PKCS#11を使用したキー転送のみが可能であると想定しています。
java - XAdES4j を使用して、アンカーを Windows キーストアに信頼するにはどうすればよいですか?
Windows キーストアに接続する必要がある xml 検証アプリケーション (Java) を開発しています。現時点では、次のメッセージで立ち往生しています: CannotBuildCertificationPathExecption: トラスト アンカー キーストアが初期化されていません。
これで、次の例を使用してストアからキーを取得できました:http://stackoverflow.com/questions/5476974/java-access-to-intermediate-cas-from-windows-keystores そして、XAdES4J を使用することに希望を与えてくれました。
私が使用しているコードは次のとおりです。
証明書は x509 です。暗号化方式 XAdES-t。
Windowsキーストアとの信頼できる接続を取得する方法を知っている人はいますか? SignatureSpecificVerificationOptions に関する情報はありますか。使用する必要がある実際の設定との関連でマニュアルを理解するのは本当に難しいと思います..
xades4j - XSdES4J で別の証明書検証を実装する方法
xades-tを使用しているメッセージを検証するためにXAdESを使用しています。ただし、ヨーロッパの一部の国では、有効なルート CA への証明書チェーンに依存していません。xades4jで証明書を検証する別の方法を実装するにはどうすればよいですか?
どんな提案でも大歓迎です。
敬具
xml-signature - ルート名前空間がに追加されます
ライブラリ:apache Santuario+xades4j。
xpathを使用して要素を選択し、それらに署名します。
名前空間のない単純なXMLに署名して署名を検証しようとすると、うまく機能しますが、XMLが名前空間を定義している場合、たとえば次のXMLです。
署名の検証時に例外が見つかりました
原因は、XML名前空間(urn:hl7-org:v3)がxades:SignedPropertiesに追加された後、ダイジェストが異なったためです。
これが署名生成コードです
これが確認コードです
この問題に関するドキュメントがApacheSantuarioFAQにあるようです。
また、この問題に関するドキュメントが次のようにあります
https://stackoverflow.com/a/12759909/1809884
これはxades4jのバグではなく、xml署名の問題のようです。
--2012-11-15を追加
およびSignedProperties要素は次のとおりです
また、xpathを使用して署名する要素を取得し、namespace(xmlns = "urn:hl7-org:v3")も結果に追加されます。
xpathに何か問題がありますか?xpathは私の狂気を駆り立てています。私は今からxpathを勉強しなければならないと思います。
クリス
java - XAdES-T メッセージを検証する前に、属性 PSEUDONYM を X509SubjectName から削除するにはどうすればよいですか?
現在、サブジェクト名に属性 PSEUDONYM を含む証明書を受信しています。X500Name オブジェクトをインスタンス化すると、java は例外を返します。
XAdES-T メッセージの署名に検証を適用する前に、サブジェクト名から PSEUDONYM 属性を削除するにはどうすればよいですか。サブジェクト名の例: C=NL,O=test,OU=Software,CN=DUMMY :PN,serialNumber=1,pseudonym=DUMMY :PN
java - XAdES に埋め込まれたファイルを切り離す
XAdES-BES 署名に署名済みコンテンツが埋め込まれている場合、署名済みコンテンツを分離して、代わりに ObjectReference を使用した XAdES を持つことができます。
簡単に言うと、ファイルが埋め込まれた XAdES を取得し、ファイルとそのファイルを参照する XAdES を返すメソッドが必要です (ファイルが XAdES に埋め込まれないようにするため)。
XAdES4j を使用する方法を見つけようとしていましたが、結果はありませんでした。
答えてくれてありがとう!
xml - xpath/xslt を使用した Xade 署名
可能であれば、誰かが xpath または xslt 変換を使用して xades4j 署名の例を投稿できますか?
たとえば、次のドキュメントがある場合:
b要素のみに署名するxades署名が必要です、ありがとう。
xades4j - x509SubjectName の属性の順序が証明書の順序と異なる場合に Xades-t メッセージを検証する方法
現在、第三者からのメッセージを検証しようとしています。私が抱えている問題は、信頼の連鎖を作成できないことです。これは、サブジェクト名 (X509SubjectName) 内の項目の順序が、含まれている証明書から抽出した場合と同様に、証明書内で異なるためです。
例: xades-t メッセージでは、x509SubjectName タグには「C=NL,O=Test company,CN=testuser,SERIALNUMBER=1」があり、証明書に含まれる x509SubjectName には「SERIALNUMBER=1,CN=testuser」があります。 ,O=テスト会社,C=NL"
私の質問は、これが許可されているかどうかです。また、Xades4j の動作を変更してこれらの署名付きメッセージを検証するにはどうすればよいですか。SignatureUtils クラスに証明書がないようです。コードは処理できるようですが、使用されたマップは空です。
よろしく、ピム