PDFium Delphi Component Docs

BuildPadesEvidenceReport método

Componente: TPdf  ·  Unidad: PDFium
Construye un informe de evidencia acotado sobre cada firma PAdES y sello de tiempo del documento en el PDF original retenido

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Description

Combina los hechos de firmas de PDFium con la inspección de algoritmos y políticas CMS, el estado de confianza y revocación de certificados, el estado de sellos de tiempo RFC 3161, la cobertura DSS/VRI y el análisis de políticas de revisiones incrementales

El método retiene una captura inmutable de los bytes de origen y la reutiliza en las etapas de cumplimiento, confianza, DSS y revisiones sin volver a guardar el documento

Las identidades del firmante y de la ruta de certificados ordenada se emiten como valores SHA-256 en lugar de copiar los cuerpos de los certificados al informe

Options

Result

TPadesEvidenceReport incluye resúmenes de validación y revisiones, registros de material DSS con hash, grafos de referencias VRI, conteo de firmas de PDFium, estado de truncamiento y un TPadesSignatureEvidence por cada firma retenida

ToJson emite un documento de evidencia anidado y ToCsv emite una fila por cada cambio de revisión retenido, o una fila de resumen cuando una firma no tiene cambios retenidos

TPadesSignatureEvidence.Validation conserva el RevocationReason y el NativeRevocationError de la firma de forma independiente del TimeStampRevocationReason y el NativeTimeStampRevocationError del timestamp

Revocation export fields

Cada entrada JSON en signatures incluye revocationReason, nativeRevocationError, timeStampSignatureStatus, timeStampTrustStatus, timeStampRevocationStatus, timeStampRevocationReason y nativeTimeStampRevocationError. Los miembros existentes y sus significados no cambian; el formato JSON no tiene un miembro de versión de esquema, así que quienes lo consuman deben leer los campos por nombre y tolerar miembros adicionales

El CSV conserva sus 40 columnas originales en su orden original y agrega esos mismos siete campos en el orden listado arriba, para un total de 47 columnas. Tanto las filas de resumen como las de cambios de revisión incluyen los diagnósticos; las posiciones de las columnas existentes no cambian. Quienes lo lean deben usar los nombres de encabezado o tolerar columnas finales adicionales en lugar de exigir exactamente 40 columnas

Las cadenas de razón son none, certificateRevoked, crlExpired, crlNotYetValid, crlUnavailable, crlSignatureInvalid, crlInvalid, chainUntrusted o unknown. Los errores nativos son códigos numéricos específicos del backend, como los errores de verificación X509 de OpenSSL o valores DWORD sin procesar del proveedor de Windows o de GetLastError, donde cero significa que no hay diagnóstico nativo. Los valores de Windows se exportan sin cambios y no deben interpretarse como máscaras de confianza de cadena agregadas ni como un espacio HRESULT común

Use revocationStatus y timeStampRevocationStatus para determinar el veredicto. Una razón none o un error en cero también ocurren cuando la comprobación está deshabilitada, no se alcanza o carece de diagnósticos detallados del backend; exportar la evidencia no ejecuta una pasada de verificación adicional

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