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