function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
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
TrustOptions controla la evaluación de confianza sin conexión o en línea, la comprobación de revocación, la comprobación de sellos de tiempo, el progreso, el tiempo de espera y la cancelaciónMaxSourceBytes rechaza fuentes retenidas sobredimensionadas antes de que comience el análisis de evidenciaMaxSignatures limita la evidencia recopilada por firmaMaxRevisionChangesPerSignature limita los cambios de revisión a nivel de objeto retenidos para cada firmaMaxValidationMaterials y MaxStoredValidationBytes acotan la evidencia de certificados, OCSP y CRL sin decodificar flujos comprimidosMaxVriEntries limita los diccionarios VRI específicos de firmaTPadesEvidenceReport 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
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
Active sea TrueIsTruncated se establece cuando cualquier presupuesto de firmas, cambios de revisión, materiales de validación, bytes almacenados o VRI recorta el detalle del informepvssIncomplete
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;