HPDFVerifyHeadlessCMS

HPDFHeadlessCMS verifica firme CMS detached contro un TStream di proprietà del chiamante usando OpenSSL 3 e il validatore condiviso dei ByteRange di firma

function HPDFVerifyHeadlessCMS(Source: TStream;
  const ByteRange: array of Int64; const CMSDER: SysUtils.TBytes;
  const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;

Un range a due elementi deve coprire lo stream completo; un range a quattro elementi parte da zero ed esclude un intervallo non vuoto, con coppie ordinate e limitate e aritmetica sicura da overflow

Il CMS deve contenere contenuto detached e almeno un firmatario; il verifier autentica il digest del contenuto, gli attributi firmati e ogni firmatario senza aggregare l'intera sorgente, accetta padding a zero in coda e rifiuta dati CMS finali non nulli

La proprietà della sorgente resta al chiamante, la sua posizione è ripristinata e il chiamante deve fornire accesso serial esclusivo durante la verifica

SignatureValid descrive l'integrità crittografica; il trust dei certificati è valutato separatamente solo quando TrustedCAFile fornisce trust anchor PEM espliciti

RequireCAdES richiede un binding signing-certificate ESS v1 o v2 autenticato; il suo hash del certificato e i facoltativi issuer e numero di serie devono identificare il vero firmatario, indipendentemente dal trust del certificato

Gli attributi ESS esistenti sono controllati anche quando RequireCAdES è false; attributi duplicati, valori multipli, sequenze malformate e byte ASN.1 finali vengono rifiutati, mentre trust anchor espliciti abilitano una passata separata di verifica della catena di certificati

La funzione valida i range numerici ma non lega un gap escluso a un token Contents PDF; usa THPDFHeadlessDocument.VerifySignature per quel controllo a livello documento

Il loader usa HOTPDF_OPENSSL_LIBRARY quando impostata, altrimenti libcrypto.so.3 su Linux o libcrypto-3.dll su Windows; la runtime library deve corrispondere all'architettura del processo e la prima libreria caricata con successo resta attiva fino alla finalizzazione dell'unità

CMS malformati, budget, simboli runtime mancanti, fallimenti di lettura della sorgente e cancellazione sollevano EHPDFHeadlessCMSError; firme non valide e catene di certificati non trusted restituiscono campi risultato false espliciti con dettagli OpenSSL

Questa funzione non recupera evidenze di revoca, trust anchor, timestamp né dati certificato remoti e non stabilisce un tempo di firma storico