function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
把 PDFium 签名事实与 CMS 算法和策略检查、证书信任与吊销状态、RFC 3161 时间戳状态、DSS/VRI 覆盖以及增量修订策略分析组合在一起
该方法保留一份不可变的源字节捕获,并在合规、信任、DSS 和修订阶段之间复用它,无需重新保存文档
签名者和有序证书路径标识以 SHA-256 值的形式输出,而不是把证书主体复制进报告
TrustOptions 控制离线或在线信任评估、吊销检查、时间戳检查、进度、超时和取消MaxSourceBytes 在证据分析开始之前拒绝过大的保留源MaxSignatures 限制收集的每个签名的证据MaxRevisionChangesPerSignature 限制为每个签名保留的对象级修订变更MaxValidationMaterials 和 MaxStoredValidationBytes 为证书、OCSP 和 CRL 证据设定界限,而不解码压缩流MaxVriEntries 限制签名专属的 VRI 字典TPadesEvidenceReport 包含验证与修订摘要、经过哈希的 DSS 材料记录、VRI 引用图、PDFium 签名计数、截断状态,以及每个保留签名对应的一个 TPadesSignatureEvidence
ToJson 输出嵌套的证据文档,ToCsv 为每个保留的修订变更输出一行,当签名没有保留变更时输出一行摘要
TPadesSignatureEvidence.Validation 把签名的 RevocationReason 和 NativeRevocationError 与时间戳的 TimeStampRevocationReason 和 NativeTimeStampRevocationError 分开保留
signatures 中的每个 JSON 条目都包含 revocationReason、nativeRevocationError、timeStampSignatureStatus、timeStampTrustStatus、timeStampRevocationStatus、timeStampRevocationReason 和 nativeTimeStampRevocationError。现有成员及其含义不变;该 JSON 格式没有 schema 版本成员,使用方应按字段名读取并容忍新增成员
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 为 TrueIsTruncatedpvssIncomplete 的不可用报告
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;