function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;
Combina fatos de assinatura do PDFium com inspeção de algoritmos e políticas CMS, estado de confiança e de revogação de certificados, estado de carimbos de tempo RFC 3161, cobertura DSS/VRI e análise de política de revisões incrementais
O método retém uma captura imutável dos bytes de origem e a reutiliza nos estágios de conformidade, confiança, DSS e revisões, sem ressalvar o documento
Identidades do signatário e do caminho de certificados ordenado são emitidas como valores SHA-256 em vez de copiar os corpos dos certificados para o relatório
TrustOptions controla a avaliação de confiança offline ou online, verificação de revogação, verificação de carimbos de tempo, progresso, timeout e cancelamentoMaxSourceBytes rejeita fontes retidas grandes demais antes que a análise de evidências comeceMaxSignatures limita as evidências coletadas por assinaturaMaxRevisionChangesPerSignature limita as mudanças de revisão no nível de objeto retidas para cada assinaturaMaxValidationMaterials e MaxStoredValidationBytes limitam evidências de certificados, OCSP e CRL sem decodificar streams comprimidosMaxVriEntries limita os dicionários VRI específicos de assinaturaTPadesEvidenceReport inclui resumos de validação e de revisões, records de material DSS com hash, grafos de referências VRI, contagem de assinaturas do PDFium, estado de truncamento e um TPadesSignatureEvidence por assinatura retida
ToJson emite um documento de evidências aninhado e ToCsv emite uma linha por mudança de revisão retida, ou uma linha de resumo quando uma assinatura não tem mudanças retidas
TPadesSignatureEvidence.Validation preserva o RevocationReason e o NativeRevocationError da assinatura independentemente do TimeStampRevocationReason e do NativeTimeStampRevocationError do timestamp
Cada entrada JSON em signatures inclui revocationReason, nativeRevocationError, timeStampSignatureStatus, timeStampTrustStatus, timeStampRevocationStatus, timeStampRevocationReason e nativeTimeStampRevocationError. Os membros e significados existentes não mudam; o formato JSON não tem um membro de schema-version, então quem consome deve ler campos pelo nome e tolerar membros adicionais
O CSV mantém suas 40 colunas originais na ordem original e anexa esses mesmos sete campos na ordem listada acima, totalizando 47 colunas. Tanto as linhas de resumo quanto as linhas de mudança de revisão incluem os diagnósticos; as posições das colunas existentes não mudam. Quem lê deve usar os nomes do cabeçalho ou tolerar colunas adicionais no final, em vez de exigir exatamente 40 colunas
As strings de reason são none, certificateRevoked, crlExpired, crlNotYetValid, crlUnavailable, crlSignatureInvalid, crlInvalid, chainUntrusted ou unknown. Os erros nativos são códigos numéricos específicos do backend, como erros de verificação X509 do OpenSSL ou valores brutos de DWORD de provider do Windows ou de GetLastError, com zero significando nenhum diagnóstico nativo. Valores do Windows são exportados sem alteração e não devem ser interpretados como máscaras de trust agregadas de cadeia nem como um espaço HRESULT comum
Use revocationStatus e timeStampRevocationStatus para determinar o veredito. Um reason none ou um erro zero também ocorre quando a checagem está desabilitada, não foi alcançada ou não tem diagnósticos detalhados do backend; exportar evidências não executa uma passagem adicional de verificação
Active seja TrueIsTruncated é definido quando qualquer orçamento de assinaturas, mudanças de revisão, material de validação, bytes armazenados ou VRI corta o detalhe do relatóriopvssIncomplete
var
Options: TPadesEvidenceReportOptions;
Report: TPadesEvidenceReport;
begin
Options := TPadesEvidenceReportOptions.Default;
Report := Pdf1.BuildPadesEvidenceReport(Options);
TFile.WriteAllText('signature-evidence.json', Report.ToJson);
end;