Preflight de perfis PAdES com endereçamento por cláusula

THotPDF.PreflightLoadedPAdES avalia uma assinatura carregada contra um perfil PAdES baseline ou estendido cumulativo e retorna todos os requisitos aplicáveis, inclusive as verificações aprovadas, com procedência de cláusula da norma e de evidência do PDF

Alvos suportados

Os alvos baseline são palBaseline_B_B, palBaseline_B_T, palBaseline_B_LT e palBaseline_B_LTA; os alvos estendidos são palExtended_E_BES, palExtended_E_EPES e palExtended_E_LTV

O valor genérico palLegacy_adbePkcs7 não é um perfil PAdES e é rejeitado como alvo

Contrato de avaliação

A sobrecarga de fluxo preserva a posição da origem pertencente ao chamador, enquanto a sobrecarga de arquivo reabre a origem usada por LoadFromFile. Um resultado True da função significa que a avaliação foi concluída; use THPDFPAdESPreflightReport.Compliant para testar a conformidade

var
  Report: THPDFPAdESPreflightReport;
  Requirement: THPDFPAdESPreflightRequirement;
begin
  PDF.LoadFromFile('Signed.pdf');
  if not PDF.PreflightLoadedPAdES(0, palBaseline_B_LT, Report) then
    raise Exception.Create(string(Report.Issue));

  for Requirement in Report.Requirements do
    WriteLn(string(Requirement.RuleID), ': ',
      BoolToStr(Requirement.Passed, True), ' at ',
      string(Requirement.Clause), ' object ',
      Requirement.ObjectNumber, ' revision ',
      Requirement.RevisionIndex);
end;

Evidências inspecionadas

As verificações baseline e estendidas inspecionam o dicionário de assinatura, a cobertura completa de /ByteRange, a validade da assinatura CMS, a cardinalidade dos atributos assinados, o tipo de conteúdo, o resumo da mensagem, as restrições de hora de assinatura, /M, /Filter, /SubFilter, /Reason e as entradas /Cert proibidas

As verificações ESS signing-certificate e signing-certificate-v2 calculam o hash do certificado real do signatário e exigem uma referência ESSCertID correspondente, em vez de aceitar um atributo apenas pelo nome

Os níveis mais altos inspecionam adicionalmente carimbos de tempo de assinatura ou de documento válidos, os arranjos de certificados e revogação do DSS, a revisão que introduziu o material de validação e se um carimbo de tempo posterior do documento cobre essa revisão do DSS

Resultados estruturados

Cada THPDFPAdESPreflightRequirement informa seu Profile de origem, Level normativo, RuleID estável, Clause, Path do PDF, ObjectNumber, RevisionIndex, status Passed e Message de diagnóstico

FailedRequirementCount conta as regras shall reprovadas, enquanto WarningCount conta as orientações should reprovadas. HighestConformingProfile identifica o perfil cumulativo mais alto aprovado e só faz sentido quando HasConformingProfile é verdadeiro

Veja PAdES signature-policy validation, batch signature validation e signature evidence acquisition