ネイティブ署名検証エビデンス

HPDFHeadlessLTV は、署名済み PDF にドキュメントセキュリティストアを追加する前に、証明書チェーンと DER の OCSP / CRL エビデンスを認証します

AddSignatureValidationEvidence は、元の PDF ByteRange、CMS 署名、信頼された署名者チェーン、必須の RFC3161 署名タイムスタンプを検証した上で、署名者チェーンと TSA チェーン内のすべての非アンカー証明書について失効カバレッジを確認します

OCSP 検証は、レスポンダー署名、チェーンと認可、発行者名と発行者鍵の証明書識別子全体、シリアル番号、good ステータス、producedAt、thisUpdate、nextUpdate、設定された鮮度ウィンドウを確認します。失効済み、不明、無関係、重複、古い、未来、未認証のレスポンスは拒否されます

CRL 検証は、供給された発行者リストごとに分離されたストアを使い、発行者、署名、スコープ、有効期間ウィンドウ、証明書失効ステータスを確認します。別ソースから読み込んだ古い CRL が、実際に供給されたエビデンスを置き換えることはありません

カタログの DSS はグローバルな Certs、OCSPs、CRLs 配列を含み、選択された署名の検証済みエビデンスを参照する VRI エントリーを持ちます。大文字の SHA-1 キーは、PDF VRI インデックスに要求されるとおり、予約済みゼロパディングを含む Contents 文字列全体をカバーします

SHA-1 は、規定された VRI インデックスか、供給された OCSP 証明書識別子にだけ使われます。PDF 署名者、TSA、レスポンダー、証明書署名アルゴリズムの選択には使いません

ライターは元の署名済みバイトと既存の DSS エントリーを保持し、インクリメンタルリビジョンを追記します。Standard AES-256 のソースは、新しく生成されたエビデンスストリームの暗号化を保持します。変更権限またはオーナー認証に従います

トラストとエビデンスのチェックは現在の検証クロックを使います。この API は、証明書失効後の歴史的検証を確立したり、後続の DSS リビジョンを保護するドキュメントタイムスタンプを追加したりしません

署名の後に追加された DSS データは、その署名の ByteRange の外にあります。埋め込みエビデンスを使うときは常に独立に認証し、認証済みアーカイブリビジョンが必要なときは、後の署名かドキュメントタイムスタンプを使ってください

リソースと失敗時の動作

呼び出し側が明示的に与えるトラストルートは必須で、タイムスタンプ要件のデフォルトは True です。THPDFHeadlessLTVOptions は Default で初期化してください

バイト、オブジェクト、デコードストリーム、出力、キャンセルの各上限は、グラフ公開の前に確認されます。拒否されたエビデンスではドキュメントは変更されず、SaveToFile は既存のアトミックライターを通じて公開します

受け入れテスト

Run-HeadlessLTVTests.sh、Run-HeadlessLTVTests-Windows.cmd、Run-HeadlessLTVTests-Delphi.ps1 が、デスクトップや PDF リーダーなしで、Linux と Windows 上の実際の OpenSSL OCSP、CRL、CMS、ローカル RFC3161 応答を動かします

Verify-HeadlessLTV.py は、cryptography でエビデンス署名と識別子を、pypdf で DSS/VRI 参照を、MuPDF で署名 Contents の暗号化例外を、OpenSSL で正確な PDF ByteRange を、それぞれ独立に確認します