itext を使用してタイムスタンプのドキュメントを追加するために、com.itextpdf.text.pdf.security.TSAClient 抽象インターフェイスがあります。
しかし、PDF ファイルからタイムスタンプ証明書を取得する方法は?
itext を使用してタイムスタンプのドキュメントを追加するために、com.itextpdf.text.pdf.security.TSAClient 抽象インターフェイスがあります。
しかし、PDF ファイルからタイムスタンプ証明書を取得する方法は?
ドキュメントのタイムスタンプを含む署名フィールドのAcroFields
メソッドを呼び出して、証明書の結果を照会することもできます。verifySignature
PdfReader reader = ...;
AcroFields fields = reader.getAcroFields();
List<String> names = fields.getSignatureNames();
String signatureName = names.get(names.size() - 1);
PdfPKCS7 pkcs7 = fields.verifySignature(signatureName);
System.out.println(String.format("Checking %ssignature %s", pkcs7.isTsp() ? "document-level timestamp " : "", signatureName));
Certificate[] chain = pkcs7.getSignCertificateChain();
このコードは、ドキュメントの最も外側の署名またはドキュメントのタイム スタンプを検査し、その署名またはタイム スタンプの証明書チェーンを既知の範囲で返します。
LtvVerifier
すべての署名とドキュメントのタイムスタンプを検証するためにクラス (上記のコードを抽出したもの) を確認し、セクション 5.4.4コンテキストで使用するPDF ドキュメントのデジタル署名でLTV ドキュメントを検証することをお勧めします。