PDFium Delphi Component 文件

BuildPadesEvidenceReport 方法

元件: TPdf  ·  單元: PDFium
為保留的原始 PDF 中每個 PAdES 簽章與文件時間戳記建立單一有界證據報告

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Description

把 PDFium 簽章事實與 CMS 演算法和政策檢查、憑證信任與撤銷狀態、RFC 3161 時間戳記狀態、DSS/VRI 涵蓋範圍,以及增量修訂版政策分析結合在一起

此方法保留一份不可變的原始位元組擷取,並在合規、信任、DSS 與修訂版階段重複使用,不必重新儲存文件

簽署者與有序憑證路徑識別以 SHA-256 值輸出,而不是把憑證本體複製進報告

Options

Result

TPadesEvidenceReport 包含驗證與修訂版摘要、雜湊後的 DSS 材料記錄、VRI 參照圖、PDFium 簽章數、截斷狀態,以及每個保留簽章一個 TPadesSignatureEvidence

ToJson 輸出巢狀的證據文件,ToCsv 則為每個保留的修訂版變更輸出一列,簽章沒有保留變更時輸出一列摘要

TPadesSignatureEvidence.Validation 會把簽章的 RevocationReason 與 NativeRevocationError 跟時間戳的 TimeStampRevocationReason 與 NativeTimeStampRevocationError 分開保留

撤銷匯出欄位

signatures 中的每個 JSON 條目都包含 revocationReason、nativeRevocationError、timeStampSignatureStatus、timeStampTrustStatus、timeStampRevocationStatus、timeStampRevocationReason 與 nativeTimeStampRevocationError。既有成員與其意義都不變;JSON 格式沒有 schema-version 成員,消費端應按名稱讀取欄位,並容忍額外的成員

CSV 保留原本的 40 欄及其順序,並依上述順序附加同樣的七個欄位,共 47 欄。摘要列與修訂版變更列都包含這些診斷;既有欄位位置不變。讀取端應使用標頭名稱或容忍額外的尾隨欄位,而不是要求恰好 40 欄

原因字串為 none、certificateRevoked、crlExpired、crlNotYetValid、crlUnavailable、crlSignatureInvalid、crlInvalid、chainUntrusted 或 unknown。原生錯誤是數值形式的後端專屬代碼,例如 OpenSSL 的 X509 驗證錯誤或原始的 Windows 提供者/GetLastError DWORD 值,零表示沒有原生診斷。Windows 的值原樣匯出,不得解讀為鏈信任的彙總遮罩或共通的 HRESULT 空間

請以 revocationStatus 與 timeStampRevocationStatus 判定結論。原因為 none 或錯誤為零,也會出現在檢查被停用、未執行到,或後端缺少細部診斷的情況;匯出證據不會執行額外的驗證

Remarks

Example

var
  Options: TPadesEvidenceReportOptions;
  Report: TPadesEvidenceReport;
begin
  Options := TPadesEvidenceReportOptions.Default;
  Report := Pdf1.BuildPadesEvidenceReport(Options);
  TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;

See Also

ValidatePadesTrust AnalyzeSignatureRevisions