ネイティブ RFC3161 タイムスタンプ
HPDFHeadlessTimestamp は、Linux と Windows でネイティブ OpenSSL 3 によるリクエスト作成と、認証済み RFC3161 応答・トークンの検証を提供します
HPDFSignHeadlessCMS、SignToFile、SignPFXToFile は実際の CMS 署名オクテットを SHA-256 でハッシュし、検証済み応答トークンを signatureTimeStampToken の未署名属性として添付します
署名の前に THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile と Transport を設定し、認証済みトークンが必須なら RequireTimestamp を設定してください
Options := THPDFHeadlessCMSOptions.Default;
Options.TrustedCAFile := SignerTrustFile;
Options.RequireTimestamp := True;
Options.Timestamp.TrustedCAFile := TSATrustFile;
Options.Timestamp.TrustedCRLFile := TSACRLFile;
Options.Timestamp.RequireRevocation := True;
Options.Timestamp.Transport := RequestTimestamp;
Options.Timestamp.TransportContext := TransportContext;
Report := Document.SignPFXToFile(FieldIndex, OutputFile, IdentityPFX,
IdentityPassword, Options);
呼び出し側所有のトランスポートは完全な DER TimeStampReq を受け取り完全な DER TimeStampResp を返すため、ネットワーク I/O 中の HTTP 認証、TLS ポリシー、期限、キャンセルを呼び出し側が制御できます
リクエストは新しい暗号 nonce を含み TSA 証明書を要求します。応答はリクエストの nonce と供給された署名値の両方に一致しなければなりません
検証は完全な CMS トークンを認証し、TSA 証明書パスと critical なタイムスタンプ EKU を検査し、ESS 署名証明書バインディングを検証し、TSTInfo が運ぶアルゴリズムを使って SHA-256、SHA-384、SHA-512 の messageImprint を実際の署名オクテットと照合します
RequireRevocation は明示的な CRL ファイルをロードし、発行者検証済みの証明書失効検査を有効にします。欠落、期限切れ、失効済みのエビデンスは信頼できる結果を作らず失敗します
既存のトークンは元のリクエスト nonce なしでオフライン検証できます。新しい応答の検証はさらに、元のリクエスト nonce と応答ステータスを検査します
インプリントを既に供給するコールバック
ForImprint 関数は事前計算された SHA256、SHA384、SHA512 ダイジェストとその THPDFHeadlessTimestampDigest 値を受け取り、再ハッシュせずにそのダイジェストバイトをそのまま RFC3161 リクエストに保存します
Windows の THPDFCMSTimestampCallback を含め、署名コールバックが既に messageImprint を供給する場合にこれらの関数を使ってください。生署名のリクエストヘルパーは引き続き SHA256 を使い、オフライントークン検証は実際にサポートされている TSTInfo アルゴリズムで元の署名オクテットをハッシュします
Token := HPDFRequestHeadlessTimestampForImprint(MessageImprint,
htdSHA384, TimestampOptions);
インプリント長は選択されたダイジェストに対して 32、48、64 バイトのいずれかでなければなりません。リクエスト結合の検証はさらに、元の新しい nonce、ダイジェスト OID、CMS 署名、TSA 証明書バインディング、明示的トラストルート、EKU、設定された失効エビデンスを検査します
リクエスト作成、応答検証、オフライントークン検証、転送、ダイジェスト値を参照してください
信頼された証明書と CRL の有効性は検証時に評価されるため、TSA 証明書が期限切れになったアーカイブトークンには、現在のトラスト検査を迂回するのではなく、アーカイブ検証ポリシーとエビデンスが必要です
不正なトークン、重複するタイムスタンプ属性、一致しないインプリント、未知のルート、無効な EKU、期限切れ TSA 証明書、失効済み TSA 証明書、期限切れ CRL、応答予算、キャンセルは、ネイティブと独立した受け入れテストでカバーされます
タイムスタンプ検証レポートはドキュメント署名者の証明書トラストとは別です。署名タイムスタンプは、後の未署名 PDF リビジョンを認証しません
タイムスタンプ関数は使用時にのみ OpenSSL のタイムスタンプシンボルをロードします。必要なら HOTPDF_OPENSSL_LIBRARY にアーキテクチャが一致する明示的な OpenSSL 3 共有ライブラリを設定してください