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

THotPDF.PreflightLoadedPAdES avalia uma assinatura carregada contra um perfil PAdES baseline ou alargado cumulativo e devolve todos os requisitos aplicáveis, incluindo as verificações bem-sucedidas, com proveniência da cláusula da norma e da evidência PDF

Alvos suportados

Os alvos baseline são palBaseline_B_B, palBaseline_B_T, palBaseline_B_LT e palBaseline_B_LTA; os alvos alargados 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 stream preserva a posição da fonte pertencente ao chamador, enquanto a sobrecarga de ficheiro reabre a fonte usada por LoadFromFile. Um resultado de função True 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ência inspecionada

As verificações baseline e alargadas 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, a mensagem digest, as restrições da 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 efetivo do signatário e exigem uma referência ESSCertID correspondente, em vez de aceitar um atributo apenas pelo nome

Os níveis superiores inspecionam ainda carimbos temporais válidos da assinatura ou do documento, os arrays de certificados e revogação do DSS, a revisão que introduziu o material de validação e se um carimbo temporal posterior do documento cobre essa revisão do DSS

Descobertas estruturadas

Cada THPDFPAdESPreflightRequirement reporta o Profile que o introduziu, o Level normativo, o RuleID estável, a Clause, o Path PDF, o ObjectNumber, o RevisionIndex, o estado Passed e a Message de diagnóstico

FailedRequirementCount conta as regras shall de nível de falha, enquanto WarningCount conta as orientações shall de nível de aviso. HighestConformingProfile identifica o perfil cumulativo mais elevado que passou e só é significativo quando HasConformingProfile é verdadeiro

Consulte Validação da política de assinatura PAdES, Validação de assinaturas em lote com caches partilhadas e Aquisição assíncrona de provas de assinatura