HPDFVerifyHeadlessDocumentTimestamp
function HPDFVerifyHeadlessDocumentTimestamp(Source: TStream;
const ByteRange: array of Int64; const TokenDER: SysUtils.TBytes;
const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;
本物のカプセル化 RFC3161 ドキュメントタイムスタンプを認証し、その署名済みメッセージインプリントを、カバーされるソースバイトそのものに結び付けます
完全性には常に、実際の TSA 署名者 1 名、暗号学的 CMS 署名と署名済み内容ダイジェスト、認証済み ESS 証明書バインディング、排他的な critical な timeStamping EKU、互換性のある key usage、TSTInfo バージョン 1、含まれていれば TSA 署名者名が必要です
インプリントアルゴリズムは認証済み TSTInfo から読まれ、アルゴリズムパラメーターが欠落または NULL の SHA256、SHA384、SHA512 に対応します
TokenDER には、完全な DER トークンの後にゼロバイトだけを含められます。MaxCMSBytes は、予約パディングを含む入力全体を制限します
デフォルトオプションは、証明書トラストの主張なしに実際の完全性を評価します。TimestampValid は認証済みタイムスタンプインプリントを表すもので、証明書トラストを含意しません
Timestamp.TrustedCAFile、RequireTimestamp、Timestamp.RequireRevocation のいずれかを与えると、明示的な RFC 3161 証明書チェーン検証と設定済み失効検証が呼び出されます。通常の TrustedCAFile は承認署名のためのものです
UseAdobeRevocationInfo はさらに、TSA CMS 署名者が本物の署名済み Adobe 失効情報属性を運ぶことを要求し、RevocationValidation.TrustedCAFile が埋め込み CRL または OCSP エビデンスと署名者チェーン全体のカバレッジを明示的に認証します
この要件は成功時に RevocationInfoEvaluated と RevocationInfoValid を設定し、欠落、不正形式、失効済み、期限切れ、不完全、信頼できないエビデンスに対しては EHPDFHeadlessCMSError を発生させます。通常の TSA CRL 検証が、要求された署名済み属性の代わりにはなりません
カプセル化 RFC 3161 トークン自体は、埋め込みエビデンスを検証する際にタイムスタンプ要件を満たします。追加の未署名 signature-timestamp 属性は不要です
過去のオフライン検証は、リクエストノンスが新しく生成されたことを主張しません。生成側が、新鮮なリクエストに対して実際のレスポンスを確認します
ソース位置は復元され、読み取りは 64 KiB に抑えられ、MaxSignedBytes がカバーされるバイトを制限し、ハッシュ計算中もキャンセルは観測可能です
SignedRevisionLength と UnsignedTrailingBytes が、カバーされるリビジョンと後続バイトを特定します。BytesRead は実際にカバーされたハッシュ入力を報告します
ドキュメントラッパーはさらに、DocTimeStamp/ETSI.RFC3161 ディクショナリータイプ、禁止エントリー、除外される 16 進またはリテラルの Contents 文字列そのものを検証します