========================================             XML長期署名ライブラリ LE:XAdES:Lib V3             Ver 3.00.R2版 「最初にお読みください」           有限会社ラング・エッジ 2024年01月22日 ======================================== ■ 最初にお読みください 本ドキュメントは、有限会社ラング・エッジが開発した以下のXML電子署名ライブラリの V3についての全体の説明をするファイルです。 ・XML長期署名ライブラリ LE:XAdES:Lib V3   ISO 14533-2:2021のXML長期署名対応 詳しくは以下のサイトをご覧ください。 http://www.langedge.jp/biz/LeXAdES3/about.html なおAPI互換性が無い XML長期署名ライブラリ LE:XAdES:Lib V2 をご利用の場合にはこの ファイルでは無く、readme-LeXAdES.txt をご覧ください。 ■ LE:XAdES:Lib V2(前バージョンとの差異) XML長期署名ライブラリLE:XAdES:LibのV3はこれまでリリースしていたV2とはAPI互換性が ありませんのでご注意ください。この為に既存のLE:XAdES:Lib V2も当面はメンテナンス 対象として引き続きサポートして行きますが新機能はV3へ実装して行くことになります。 XML長期署名ライブラリLE:XAdES:LibのV3をV2と比較した差異は以下となります。 1)V3ではWindows版に加えてLinux版も提供 > V2ではWindows版のみだった  ※ 対応LinuxはRHE/CentOS系だがソースコード付属しており他もほぼ対応が可能 2)V3では.NET以外にJavaとC++(g++)のAPIも提供 > V2では.NETとC++/CLIのみだった  ※ ただしJavaのAPIにはJNIを使っておりネイティブJava対応では無い 3)V3では同一XMLファイル内の複数署名に対応 > V2では1ファイル1署名のみだった  ※ 署名付与と署名検証に対応(処理時にXPathや署名番号にて対象の指定が可能) 4)V3では多階層のManifest構造に対応 > V2では1階層のみ対応だった  ※ Manifestの参照先はアーカイブタイムスタンプ保証外なので注意が必要  ※ 詳しくはマニュアル doc/LeXAdES-manual.pdf を参照 5)V3ではPKI機能にLE:PKI:Libを利用(LE:PAdES:Libと共通化) > V2では独自PKI実装  ※ LE:PKI:Libは主としてOpenSSLを利用、V2は主として.NETの暗号APIを利用 いずれもV3での機能追加であり今後新規開発時にはV2では無くV3をお使いください。 ■ 評価版について 評価版については以下の制限があります。 1.評価版でセットできる参照数(LeXAdES/LeManifest)は最大4つまでとなります。 2.評価版で付与する電子署名の署名Idには常に「LeEval-」が最初に追加されます。 3.評価版にソースコードは付属しません。 評価版の確認はLx3Cmdを実行することで確認可能です。 ・Windows版の実行方法 > bin_win/Release/Lx3Cmd.exe ・Linux版の実行方法 $ bin_linux/Lx3Cmd.sh ○ 以下のように "[EVAL]" が表示された場合は評価版です。 Lx3Cmd : LeXAdES(V3.0X.RX)/LePKI(V1.0X.RX) [EVAL] LangEdge XAdES V3 Command. ^^^^^^ ○ 以下のように表示された場合は製品版です。 Lx3Cmd : LeXAdES(V3.0X.RX)/LePKI(V1.0X.RX) LangEdge XAdES V3 Command. ■ ドキュメント説明 readme-LeXAdES3.txt : 本ファイル、全体に関する説明とリリース履歴。 doc/LeXAdES3-manual.pdf : LE:XAdES:Lib V3の製品マニュアル。 doc/LeXAdES3/cmd/*-help.txt : コマンドラインの利用方法のヘルプファイル。 doc/LeXAdES3/cpp/index.html : CPPのAPIリファレンスファイル。 doc/LeXAdES3/java/index.html : JavaのAPIリファレンスファイル。 doc/LeXAdES3/dotnet/index.html : .NETのAPIリファレンスファイル。 ■ LE:XAdES:Lib V3モジュール構成 LE:XAdES:Lib V3は大きく2つのモジュールに分けられます。 ・LePKI : LangEdge PKI 操作モジュール   長期署名に対応したPKI操作の為のモジュール。   ※ LE:PAdES:Lib等と共有されるモジュールです。 ・LeXAdES3 : LangEdge XAdES 操作モジュール   XAdES署名に対応したXML操作の為のモジュール。 モジュールやライブラリ・ソース等もモジュール毎に分けられています。 LE:XAdES:Lib V3を利用するにはLePKIとLeXAdES3の両方のモジュールが必要と なります。 ■ フォルダ構成 1)LE:XAdES:Lib V3を利用するのに必要なフォルダ // 実行に必要なフォルダ bin_win : 実行ファイル(Windows用) 必要なDLLファイルやコマンドが入っている。※1 lib_linux : リンクライブラリ(Linux用) 必要なsoファイル等が入っている。※2 bin_linux : 実行ファイル(Linux用) 実行スクリプト Lx3Cmd.sh が入っている。 java/lib : Java用のライブラリフォルダ。※3 // API組み込み時に必要なフォルダ include : インクルードフォルダ この下へインクルードパスを通す。 lib_win : リンクライブラリ(Windows用) この下へライブラリパスを通す。※1 // クライアント署名用フォルダ clientV2 : クライアント署名Ver2用のフォルダ。 client : クライアント署名Ver1用のフォルダ(過去互換性の為)。 // ドキュメント関連 doc : マニュアルファイルやAPIリファレンス用フォルダ。 license : フリーライブラリのライセンス用フォルダ。 ※1 Windows環境用は更にbin_win下が以下のサブフォルダに分かれている。    Release : Windows 32bit リリース版    Release64 : Windows 64bit リリース版    Debug : Windows 32bit デバッグ版    Debug64 : Windows 64bit デバッグ版    なお.NETのDLL(LeXAdES3dnet.dll)はPATHを通すだけでは使えない場合があります。    利用する実行ファイル(例:Lx3Cmd.exe)と同じディレクトリに入れるかアセンブリの    解決が必要となる場合があります。 ※2 Linux環境でC++/Javaから使う場合には、lib_linux に対して LD_LIBRARY_PATH    環境変数をセットするか、lib_linux の中にあるファイルを標準のライブラリ    ディレクトリ(/usr/lib 等)にコピーをする必要がある。 ※3 JavaのAPIを利用しないなら不要 2)LE:XAdES:Lib V3をビルドするのに必要なフォルダ src : LE:PAdES:Libビルド用ソースフォルダ ※4 local : フリーライブラリ用フォルダ ※4 java : Java用のソースとビルド用フォルダ dotnet : .NET用のソースとビルド用フォルダ(DLLファイルはbin_winの下) clientV2 : クライアント署名Ver2用のフォルダ ※4 評価版には含まれない 3)その他 sample/LeXAdES3/cmd : Lx3Cmdによるサンプルソース ※5 sample/LeXAdES3/cpp : C++のAPI実装によるサンプルソース ※5 sample/LeXAdES3/java : JavaのAPI実装によるサンプルソース ※5 sample/LeXAdES3/cs : .NETのAPI実装によるC#用サンプルソース ※5 ※5 Windowsの64ビットを利用する場合にはバッチファイルに引数 "64" を指定する。 ■ コマンド利用サンプル sample/LeXAdES3/cmd の下に格納されています。 // Windows CmdAll.bat : 全サンプルの実行 ※6 CmdXadesTest.bat : 長期署名サンプル(署名+検証情報保存+タイムスタンプ)の実行バッチファイル ※6 CmdXadesPrefixTest.bat : プレフィックス付き長期署名サンプルの実行バッチファイル ※6 CmdDetachedIdTest.bat : Id参照の内部Detachedサンプルの実行バッチファイル ※6 CmdEnvelopedTest.bat : XMLへの署名埋め込みの実行バッチファイル ※6 CmdManifestTest.bat : 間接参照Manifest試験の実行バッチファイル ※6 CmdClientTest.bat : クライアント署名対応サンプルの実行バッチファイル ※6 CmdHsmTest.bat : HSM利用サンプルの実行バッチファイル(署名値はPKCS#12ファイルで計算) ※6 // Linux CmdAll.sh : 全サンプルの実行 CmdXadesTest.sh : 長期署名サンプル(署名+検証情報保存+タイムスタンプ)の実行シェルファイル CmdXadesPrefixTest.sh : プレフィックス付き長期署名サンプルの実行シェルファイル CmdDetachedIdTest.sh : Id参照の内部Detachedサンプルの実行シェルファイル CmdEnvelopedTest.sh : XMLへの署名埋め込みの実行シェルファイル CmdManifestTest.sh : 間接参照Manifest試験の実行シェルファイル CmdClientTest.sh : クライアント署名対応サンプルの実行シェルファイル CmdHsmTest.sh : HSM利用サンプルの実行シェルファイル(署名値はPKCS#12ファイルで計算) ※6 Windowsの64ビットを利用する場合にはバッチファイルに引数 "64" を指定する。 sample/LeXAdES3/LeTest.p12 : サンプル実行用の証明書(PKCS#12/パスワード"test") sample/LeXAdES3/store/ : サンプル用の独自証明書ストアディレクトリ ■ 更新履歴 Ver3.00.R2版 : 2024-01-22 ・SigningCertificateV2では無くSigningCertificateを指定して署名した場合に正しく情報を  出力していなかった問題の修正。 ・DataObjectFormat要素のEncodingとDescriptionを指定した署名をした場合に正しく情報を  出力していなかった問題の修正。 ・OpenSSLを3.1.1にしたことで一部のタイムスタンプの情報取得に失敗していた問題の修正。 ・Windows版の認証付きプロキシ環境でWinHTTP(デフォルト)を使った場合にエラーになり  通信できない問題の修正。現在Basic認証のみサポート。NTLM/PASSPORT/DIGEST等の認証が  必要な場合にはご連絡ください。 ・OpenSSLを3.1.1にしたことで属性証明書を含むタイムスタンプトークンの検証に失敗を  していた問題の修正。なおOpenSSLの修正となる。 ・証明書にV_ASN1_BMPSTRING(UTF-16BE)が使われていた場合に情報取得に失敗をする問題  の修正。 ・証明書にDN形式のCRLDPがある時にLPKV_NOUSE_LDAPを指定してもCRL取得しようとする  問題の修正。DN形式のCRLDPはGPKI証明書等で使われている。 ・OpenSSLの3.1.1完全移行に向けてOpenSSLレガシーAPIの利用停止。 ・LE:PKI:LibのV1.08.R3への更新。 ・LE:XAdES3:LibマニュアルとLE:PKI:Libマニュアルの更新。 Ver3.00.R1版 : 2023-08-30 ・最初のリリース版。 ========================================      Copyright (C) 2006-2024 LangEdge,Inc. All rights reserved.               https://www.langedge.jp/ ========================================