Preflight de perfiles PAdES direccionable por cláusula

THotPDF.PreflightLoadedPAdES evalúa una firma cargada contra un perfil PAdES baseline o extended acumulativo y devuelve cada requisito aplicable, incluidas las comprobaciones con éxito, con procedencia de cláusula de estándar y de evidencia PDF

Destinos soportados

Los destinos baseline son palBaseline_B_B, palBaseline_B_T, palBaseline_B_LT y palBaseline_B_LTA; los destinos extended son palExtended_E_BES, palExtended_E_EPES y palExtended_E_LTV

El valor genérico palLegacy_adbePkcs7 no es un perfil PAdES y se rechaza como destino

Contrato de evaluación

La sobrecarga con stream preserva la posición de origen propiedad del llamador, mientras que la sobrecarga con archivo reabre la fuente usada por LoadFromFile. Un resultado True significa que la evaluación terminó; use THPDFPAdESPreflightReport.Compliant para comprobar la conformidad

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;

Evidencia inspeccionada

Las comprobaciones baseline y extended inspeccionan el diccionario de firma, la cobertura completa de /ByteRange, la validez de la firma CMS, la cardinalidad de signed attributes, el content type, el message digest, las restricciones de signing-time, /M, /Filter, /SubFilter, /Reason y las entradas /Cert prohibidas

Las comprobaciones ESS signing-certificate y signing-certificate-v2 calculan el hash del certificado real del firmante y exigen una referencia ESSCertID coincidente, en lugar de aceptar un atributo solo por su nombre

Los niveles superiores inspeccionan además timestamps de firma o de documento válidos, los arrays de certificados y revocación del DSS, la revisión que introdujo el material de validación y si un timestamp de documento posterior cubre esa revisión del DSS

Hallazgos estructurados

Cada THPDFPAdESPreflightRequirement informa de su Profile de introducción, el Level normativo, el RuleID estable, la Clause, el Path PDF, el ObjectNumber, el RevisionIndex, el estado Passed y el Message de diagnóstico

FailedRequirementCount cuenta las reglas shall fallidas, mientras que WarningCount cuenta las guías should fallidas. HighestConformingProfile identifica el perfil acumulativo más alto superado y solo tiene sentido cuando HasConformingProfile es true

Consulte validación de políticas de firma PAdES, validación de firmas en lote y adquisición de evidencia de firma