PDFium Delphi Component Docs

BuildPadesEvidenceReport Metodo

Componente: TPdf  ·  Unità: PDFium
Genera un report di evidenze delimitato su ogni firma PAdES e timestamp di documento nel PDF originale trattenuto

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Description

Combina i fatti di firma di PDFium con l'ispezione di algoritmi e policy CMS, lo stato di trust e revoca dei certificati, lo stato dei timestamp RFC 3161, la copertura DSS/VRI e l'analisi delle policy delle revisioni incrementali

Il metodo trattiene una sola acquisizione immutabile dei byte sorgente e la riutilizza attraverso le fasi di compliance, trust, DSS e revisioni senza risalvare il documento

Le identità del firmatario e del percorso di certificazione ordinato vengono emesse come valori SHA-256 invece di copiare i corpi dei certificati nel report

Options

Result

TPadesEvidenceReport include i riepiloghi di validazione e revisione, i record hashizzati del materiale DSS, i grafi di riferimento VRI, il conteggio delle firme di PDFium, lo stato di troncamento e un TPadesSignatureEvidence per ogni firma trattenuta

ToJson emette un documento di evidenze annidato e ToCsv emette una riga per ogni modifica di revisione trattenuta, oppure una riga di riepilogo quando una firma non ha modifiche trattenute

TPadesSignatureEvidence.Validation preserva RevocationReason e NativeRevocationError della firma indipendentemente da TimeStampRevocationReason e NativeTimeStampRevocationError del timestamp

Campi di export della revoca

Ogni voce JSON in signatures include revocationReason, nativeRevocationError, timeStampSignatureStatus, timeStampTrustStatus, timeStampRevocationStatus, timeStampRevocationReason e nativeTimeStampRevocationError. I membri esistenti e il loro significato restano invariati; il formato JSON non ha un membro di schema-version, quindi i consumer dovrebbero leggere i campi per nome e tollerare membri aggiuntivi

Il CSV mantiene le sue originali 40 colonne nell'ordine originale e accoda gli stessi sette campi nell'ordine elencato sopra, per un totale di 47 colonne. Sia le righe di riepilogo sia quelle delle modifiche di revisione includono la diagnostica; le posizioni delle colonne esistenti restano invariate. Chi legge dovrebbe usare i nomi delle intestazioni o tollerare colonne finali aggiuntive invece di richiedere esattamente 40 colonne

Le stringhe dei motivi sono none, certificateRevoked, crlExpired, crlNotYetValid, crlUnavailable, crlSignatureInvalid, crlInvalid, chainUntrusted oppure unknown. Gli errori nativi sono codici numerici specifici del backend, come gli errori di verifica X509 di OpenSSL o i valori DWORD grezzi del provider Windows o di GetLastError, dove zero significa nessuna diagnostica nativa. I valori Windows vengono esportati senza modifiche e non vanno interpretati come maschere di fiducia aggregata della catena né come uno spazio HRESULT comune

Usare revocationStatus e timeStampRevocationStatus per determinare il verdetto. Un motivo none o un errore zero si verifica anche quando il controllo è disattivato, non raggiunto o privo di diagnostica dettagliata del backend; esportare le evidenze non esegue un passaggio di verifica aggiuntivo

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