function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
Kombiniert PDFium-Signaturfakten mit CMS-Algorithmus- und Richtlinieninspektion, Zertifikatsvertrauen und Sperrstatus, RFC-3161-Zeitstempelstatus, DSS/VRI-Abdeckung und Analyse der inkrementellen Revisionsrichtlinie
Die Methode hält eine unveränderliche Aufnahme der Quellbytes zurück und verwendet sie über die Compliance-, Trust-, DSS- und Revisionsstufen hinweg wieder, ohne das Dokument neu zu speichern
Signatur- und geordnete Zertifikatspfad-Identitäten werden als SHA-256-Werte ausgegeben, statt Zertifikatskörper in den Report zu kopieren
TrustOptions steuert die Offline- oder Online-Vertrauensbewertung, die Sperrprüfung, die Zeitstempelprüfung, den Fortschritt, den Timeout und den AbbruchMaxSourceBytes weist übergroße zurückgehaltene Quellen zurück, bevor die Nachweisanalyse beginntMaxSignatures begrenzt die gesammelten Nachweise pro SignaturMaxRevisionChangesPerSignature begrenzt die objektbezogenen Revisionsänderungen, die pro Signatur zurückgehalten werdenMaxValidationMaterials und MaxStoredValidationBytes begrenzen Zertifikats-, OCSP- und CRL-Nachweise, ohne komprimierte Streams zu dekodierenMaxVriEntries begrenzt die signaturspezifischen VRI-WörterbücherTPadesEvidenceReport umfasst Validierungs- und Revisionssummaries, gehashte DSS-Material-Records, VRI-Referenzgraphen, die PDFium-Signaturanzahl, den Truncation-Zustand und ein TPadesSignatureEvidence je zurückgehaltener Signatur
ToJson gibt ein verschachteltes Nachweisdokument aus, und ToCsv gibt eine Zeile pro zurückgehaltener Revisionsänderung aus bzw. eine Summary-Zeile, wenn eine Signatur keine zurückgehaltenen Änderungen hat
TPadesSignatureEvidence.Validation bewahrt die RevocationReason und NativeRevocationError der Signatur unabhängig von TimeStampRevocationReason und NativeTimeStampRevocationError des Zeitstempels
Jeder JSON-Eintrag in signatures enthält revocationReason, nativeRevocationError, timeStampSignatureStatus, timeStampTrustStatus, timeStampRevocationStatus, timeStampRevocationReason und nativeTimeStampRevocationError. Bestehende Member und Bedeutungen bleiben unverändert; das JSON-Format hat kein Schema-Version-Member, daher sollten Consumers Felder beim Namen lesen und zusätzliche Member tolerieren
Das CSV behält seine ursprünglichen 40 Spalten in ursprünglicher Reihenfolge bei und hängt dieselben sieben Felder in der oben genannten Reihenfolge an, insgesamt also 47 Spalten. Sowohl Summary-Zeilen als auch Revisionsänderungs-Zeilen enthalten die Diagnosen; bestehende Spaltenpositionen bleiben unverändert. Reader sollten die Header-Namen verwenden oder zusätzliche Nachlaufspalten tolerieren, statt exakt 40 Spalten zu verlangen
Grund-Strings sind none, certificateRevoked, crlExpired, crlNotYetValid, crlUnavailable, crlSignatureInvalid, crlInvalid, chainUntrusted oder unknown. Native Fehler sind numerische backend-spezifische Codes, etwa OpenSSL-X509-Verifizierungsfehler oder rohe Windows-Provider- bzw. GetLastError-DWORD-Werte, wobei null für keine native Diagnose steht. Windows-Werte werden unverändert exportiert und dürfen nicht als aggregierte Chain-Trust-Masken oder als gemeinsamer HRESULT-Raum interpretiert werden
Ziehen Sie revocationStatus und timeStampRevocationStatus für das Urteil heran. Ein Grund von none oder ein Nullfehler tritt auch auf, wenn die Prüfung deaktiviert war, nie erreicht wurde oder detaillierte Backend-Diagnose fehlt; der Export von Nachweisen führt keine zusätzliche Verifikation durch
Active auf True stehtIsTruncated wird gesetzt, wenn ein Signatur-, Revisionsänderungs-, Validierungsmaterial-, gespeicherte-Bytes- oder VRI-Budget die Berichtsdetails kürztpvssIncomplete
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;