function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
PDFium の署名ファクトに、CMS アルゴリズムとポリシーの検査、証明書のトラストと失効状態、RFC 3161 タイムスタンプの状態、DSS/VRI のカバレッジ、インクリメンタルリビジョンのポリシー分析を組み合わせます
このメソッドは不変のソースバイトキャプチャを 1 つ保持し、ドキュメントを再保存することなく、コンプライアンス、トラスト、DSS、リビジョンの各ステージでそれを再利用します
署名者と順序付き証明書パスの識別情報は、証明書本体をレポートへコピーする代わりに SHA-256 値として出力されます
TrustOptions はオフラインまたはオンラインのトラスト評価、失効チェック、タイムスタンプチェック、進行状況、タイムアウト、キャンセルを制御しますMaxSourceBytes は、エビデンス分析を開始する前に、大きすぎる保持ソースを拒否しますMaxSignatures は収集される署名ごとのエビデンスを制限しますMaxRevisionChangesPerSignature は署名ごとに保持されるオブジェクトレベルのリビジョン変更を制限しますMaxValidationMaterials と MaxStoredValidationBytes は、圧縮ストリームをデコードすることなく、証明書、OCSP、CRL のエビデンスに上限を設けますMaxVriEntries は署名固有の VRI 辞書を制限しますTPadesEvidenceReport には、検証とリビジョンのサマリー、ハッシュ化された DSS マテリアルレコード、VRI 参照グラフ、PDFium 署名数、切り詰め状態、および保持された各署名に対する 1 つの TPadesSignatureEvidence が含まれます
ToJson は入れ子のエビデンスドキュメントを出力し、ToCsv は保持されたリビジョン変更ごとに 1 行を、署名に保持された変更がない場合はサマリー行を 1 行出力します
TPadesSignatureEvidence.Validation は、署名の RevocationReason と NativeRevocationError を、タイムスタンプの TimeStampRevocationReason および NativeTimeStampRevocationError とは独立に保持します
signatures の各 JSON エントリには、revocationReason、nativeRevocationError、timeStampSignatureStatus、timeStampTrustStatus、timeStampRevocationStatus、timeStampRevocationReason、nativeTimeStampRevocationError が含まれます。既存のメンバーとその意味は変わらず、JSON 形式にはスキーマバージョンのメンバーがないため、コンシューマーはフィールドを名前で読み、追加のメンバーを許容するようにしてください
CSV は元の 40 列を元の順序のまま保持し、上記と同じ 7 フィールドを列挙順に追記して合計 47 列になります。サマリー行とリビジョン変更行のどちらにも診断が含まれ、既存の列位置は変わりません。読み取る側は、40 列ちょうどを要求するのではなく、ヘッダー名を使うか末尾の追加列を許容するようにしてください
reason の文字列は none、certificateRevoked、crlExpired、crlNotYetValid、crlUnavailable、crlSignatureInvalid、crlInvalid、chainUntrusted、unknown のいずれかです。ネイティブ エラーはバックエンド固有の数値コード(OpenSSL の X509 検証エラー、Windows のプロバイダーや GetLastError の生の DWORD 値など)で、0 はネイティブの診断情報がないことを意味します。Windows の値はそのまま出力されるため、集約チェーン トラスト マスクや共通の HRESULT 空間として解釈してはいけません
判定には revocationStatus と timeStampRevocationStatus を使ってください。チェックが無効だったり到達しなかったり、バックエンドの詳細診断が得られない場合にも、reason が none になったりエラーが 0 になったりします。エビデンスの出力時に追加の検証パスが実行されることはありません
Active が True である必要がありますIsTruncated が設定されますpvssIncomplete の利用不可レポートを返します
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;