iText またはその他のコンポーネントを使用して PDF ドキュメントをオフラインでタイムスタンプすることは可能ですか?
iText と TSAClient クラスを利用した標準的なソリューションをグーグルで検索しましたが、オンライン サービスとして TSA が必要です。タイムスタンプ署名を作成することを目的とした TSA からの証明書 (秘密鍵を含む) がありますが、iText でそれを行う技術的な方法が見つかりません。
ご指導ありがとうございます。リッチモンド
iText またはその他のコンポーネントを使用して PDF ドキュメントをオフラインでタイムスタンプすることは可能ですか?
iText と TSAClient クラスを利用した標準的なソリューションをグーグルで検索しましたが、オンライン サービスとして TSA が必要です。タイムスタンプ署名を作成することを目的とした TSA からの証明書 (秘密鍵を含む) がありますが、iText でそれを行う技術的な方法が見つかりません。
ご指導ありがとうございます。リッチモンド
iText と TSAClient クラスを利用した標準的なソリューションをグーグルで検索しましたが、オンライン サービスとして TSA が必要です。
TSAClient
最終クラスではなく、単なるインターフェースです。
/**
* Time Stamp Authority client (caller) interface.
* <p>
* Interface used by the PdfPKCS7 digital signature builder to call
* Time Stamp Authority providing RFC 3161 compliant time stamp token.
* @author Martin Brunecky, 07/17/2007
* @since 2.1.6
*/
public interface TSAClient {
/**
* Get the time stamp token size estimate.
* Implementation must return value large enough to accomodate the entire token
* returned by getTimeStampToken() _prior_ to actual getTimeStampToken() call.
* @return an estimate of the token size
*/
public int getTokenSizeEstimate();
/**
* Get RFC 3161 timeStampToken.
* Method may return null indicating that timestamp should be skipped.
* @param caller PdfPKCS7 - calling PdfPKCS7 instance (in case caller needs it)
* @param imprint byte[] - data imprint to be time-stamped
* @return byte[] - encoded, TSA signed data of the timeStampToken
* @throws Exception - TSA request failed
*/
public byte[] getTimeStampToken(PdfPKCS7 caller, byte[] imprint) throws Exception;
}
したがって、そのインターフェースを実装して、任意の方法でタイムスタンプを生成するだけです。コメントは何らかのオンライン サービスを暗示しているように見えますがbyte[]
、指定されbyte[] imprint
た .
そうは言っても、そのようなタイムスタンプは名前に値しません。作成しようとしているタイム スタンプが、許容誤差範囲内で正確であることを保証できますか?
TSAClient
したがって、そのための既存の実装を見つけることはほとんどありません。しかし、既存のセキュリティ ライブラリ (Bouncy Castle など) を使用すると、タイム スタンプ要求応答の作成が非常に簡単になります。