function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
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
TrustOptions controlla la valutazione offline o online del trust, il controllo delle revoche, il controllo dei timestamp, l'avanzamento, il timeout e l'annullamentoMaxSourceBytes rifiuta sorgenti trattenute eccessive prima che inizi l'analisi delle evidenzeMaxSignatures limita le evidenze raccolte per firmaMaxRevisionChangesPerSignature limita le modifiche di revisione a livello di oggetto trattenute per ogni firmaMaxValidationMaterials e MaxStoredValidationBytes delimitano le evidenze di certificati, OCSP e CRL senza decodificare gli stream compressiMaxVriEntries limita i dizionari VRI specifici delle firmeTPadesEvidenceReport 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
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
Active a TrueIsTruncated viene impostato quando un qualsiasi budget di firme, modifiche di revisione, materiali di validazione, byte memorizzati o VRI tronca il dettaglio del reportpvssIncomplete
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;