PDFium Component Docs

BuildPadesEvidenceReport Metoda

Component: TPdf  ·  Unit: PDFium
Buduje jeden ograniczony budżetem raport dowodowy obejmujący wszystkie podpisy PAdES i znaczniki czasu dokumentu w zachowanym oryginalnym PDF

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Description

Łączy fakty podpisowe z PDFium z inspekcją algorytmów i polityk CMS, stanem zaufania i unieważnień certyfikatów, stanem znaczników czasu RFC 3161, pokryciem DSS/VRI oraz analizą polityk rewizji przyrostowych

Metoda zachowuje pojedynczy, niezmienny zapis oryginalnych bajtów źródłowych i wielokrotnie go używa w etapach zgodności, zaufania, DSS i rewizji, bez ponownego zapisu dokumentu

Tożsamości podpisujących i uporządkowanej ścieżki certyfikatów są emitowane jako wartości SHA-256, zamiast kopiować treści certyfikatów do raportu

Options

Result

TPadesEvidenceReport zawiera podsumowania walidacji i rewizji, rekordy materiałów DSS zapisane jako skróty, grafy odwołań VRI, liczbę podpisów z PDFium, stan ucięcia oraz po jednym TPadesSignatureEvidence na zachowany podpis

ToJson emituje zagnieżdżony dokument dowodowy, a ToCsv emituje jeden wiersz na zachowaną zmianę rewizji albo jeden wiersz podsumowania, gdy podpis nie ma zachowanych zmian

TPadesSignatureEvidence.Validation zachowuje RevocationReason i NativeRevocationError podpisu niezależnie od TimeStampRevocationReason i NativeTimeStampRevocationError znacznika czasu

Pola eksportu unieważnień

Każdy wpis JSON w signatures zawiera revocationReason, nativeRevocationError, timeStampSignatureStatus, timeStampTrustStatus, timeStampRevocationStatus, timeStampRevocationReason i nativeTimeStampRevocationError. Istniejące składowe i ich znaczenia są bez zmian; format JSON nie ma składowej wersji schematu, więc konsumenci powinni czytać pola po nazwie i tolerować dodatkowe składowe

CSV zachowuje oryginalne 40 kolumn w oryginalnej kolejności i dokłada te same siedem pól w podanej wyżej kolejności, co daje łącznie 47 kolumn. Zarówno wiersze podsumowania, jak i wiersze zmian rewizji zawierają diagnostykę; istniejące pozycje kolumn się nie zmieniają. Czytniki powinny opierać się na nazwach z nagłówka albo tolerować dodatkowe kolumny na końcu, zamiast wymagać dokładnie 40 kolumn

Stringi powodów to none, certificateRevoked, crlExpired, crlNotYetValid, crlUnavailable, crlSignatureInvalid, crlInvalid, chainUntrusted lub unknown. Natywne kody błędów to numeryczne kody zależne od backendu, na przykład błędy weryfikacji X509 w OpenSSL albo surowe wartości DWORD dostawcy Windows czy GetLastError, przy czym zero oznacza brak natywnej diagnostyki. Wartości z Windows są eksportowane bez zmian i nie wolno ich interpretować jako zagregowanych masek zaufania łańcucha ani wspólnej przestrzeni HRESULT

Werdykt ustalaj po revocationStatus i timeStampRevocationStatus. Powód none albo zerowy błąd pojawia się też, gdy sprawdzanie jest wyłączone, nieosiągnięte albo pozbawione szczegółowej diagnostyki backendu; eksport dowodów nie wykonuje dodatkowego przebiegu weryfikacji

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