PDFium Delphi Component Docs

BuildPadesEvidenceReport Método

Componente: TPdf  ·  Unidade: PDFium
Constrói um relatório de evidências limitado abrangendo cada assinatura PAdES e carimbo de tempo de documento no PDF original retido

Syntax

function BuildPadesEvidenceReport(const Options: TPadesEvidenceReportOptions): TPadesEvidenceReport;

Description

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

Options

Result

TPadesEvidenceReport 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

Campos de exportação de revogação

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

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