PDFium Delphi Component Docs

BuildPadesEvidenceReport Methode

Komponente: TPdf  ·  Unit: PDFium
Erstellt einen begrenzten Nachweis-Report über jede PAdES-Signatur und jeden Dokumentzeitstempel im zurückgehaltenen Original-PDF

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Beschreibung

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

Optionen

Ergebnis

TPadesEvidenceReport 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

Sperr-Exportfelder

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

Hinweise

Beispiel

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

Siehe auch

ValidatePadesTrust AnalyzeSignatureRevisions