HPDFVerifyHeadlessCMS

HPDFHeadlessCMS verifierar fristående CMS-signaturer mot en av anroparen ägd TStream med OpenSSL 3 och den delade ByteRange-valideraren för signaturer

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

Ett intervall med två element måste täcka hela strömmen; ett intervall med fyra element börjar på noll och exkluderar ett icke-tomt intervall, med ordnade, avgränsade par och overflow-säker aritmetik

CMS måste innehålla fristående innehåll och minst en signer; verifieraren autentiserar innehållets digest, signerade attribut och varje signer utan att aggregera hela källan, accepterar avslutande nollpadding och avvisar CMS-data med annat än noll i slutet

Ägarskapet av källan ligger kvar hos anroparen, dess position återställs, och anroparen måste tillhandahålla exklusiv seriell åtkomst under verifieringen

SignatureValid beskriver kryptografisk integritet; certifikattrust utvärderas separat endast när TrustedCAFile tillhandahåller explicita PEM-trust anchors

RequireCAdES kräver en autentiserad ESS v1- eller v2-bindning av signeringscertifikat; dess certifikathash samt valfria utfärdare och serienummer måste identifiera den faktiska signern, oberoende av certifikattrust

Befintliga ESS-attribut kontrolleras även när RequireCAdES är false; duplicerade attribut, flera värden, missformade sekvenser och avslutande ASN.1-bytes avvisas, medan explicita trust anchors aktiverar ett separat verifieringspass av certifikatkedjan

Funktionen validerar de numeriska intervallen men binder inte ett exkluderat gap till en PDF Contents-token; använd THPDFHeadlessDocument.VerifySignature för den kontrollen på dokumentnivå

Laddaren använder HOTPDF_OPENSSL_LIBRARY om den är satt, annars libcrypto.so.3 på Linux eller libcrypto-3.dll på Windows; runtime-biblioteket måste matcha processarkitekturen, och det första bibliotek som laddas med framgång förblir aktivt tills unit-finalisering

Missformad CMS, överskridna budgetar, saknade runtime-symboler, läsfel i källan och avbrott kastar EHPDFHeadlessCMSError; ogiltiga signaturer och icke betrodda certifikatkedjor returnerar explicita false-resultatfält med OpenSSL-detaljer

Funktionen hämtar inte spärrinformation, trust anchors, timestamps eller fjärrcertifikatdata och fastställer ingen historisk signeringstid