HPDFVerifyHeadlessCMS
HPDFHeadlessCMS vérifie les signatures CMS detached contre un TStream détenu par l'appelant en utilisant OpenSSL 3 et le validateur ByteRange de signature partagé
function HPDFVerifyHeadlessCMS(Source: TStream; const ByteRange: array of Int64; const CMSDER: SysUtils.TBytes; const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;
Une plage à deux éléments doit couvrir le stream complet ; une plage à quatre éléments démarre à zéro et exclut un intervalle non vide, avec des paires ordonnées bornées et une arithmétique sûre contre l'overflow
Le CMS doit contenir du contenu detached et au moins un signataire ; le vérificateur authentifie le digest du contenu, les attributs signés et chaque signataire sans agrégation de toute la source, accepte un padding zéro final et rejette des données CMS finales non nulles
La propriété de la source reste à l'appelant, sa position est restaurée, et l'appelant doit fournir un accès série exclusif pendant la vérification
SignatureValid décrit l'intégrité cryptographique ; le trust des certificats est évalué séparément seulement quand TrustedCAFile fournit des ancres de confiance PEM explicites
RequireCAdES exige un binding signing-certificate ESS v1 ou v2 authentifié ; son hash de certificat et issuer et numéro de série optionnels doivent identifier le véritable signataire, indépendamment du trust de certificats
Les attributs ESS existants sont vérifiés même quand RequireCAdES est false ; attributs dupliqués, valeurs multiples, séquences malformées et octets ASN.1 en trop sont rejetés, tandis que des ancres de confiance explicites activent une passe séparée de vérification de chaîne de certificats
La fonction valide les plages numériques mais ne lie pas un intervalle exclu à un token Contents PDF ; utilisez THPDFHeadlessDocument.VerifySignature pour cette vérification au niveau document
Le loader utilise HOTPDF_OPENSSL_LIBRARY quand défini, sinon libcrypto.so.3 sous Linux ou libcrypto-3.dll sous Windows ; la bibliothèque runtime doit correspondre à l'architecture du processus, et la première bibliothèque chargée avec succès reste active jusqu'à la finalisation de l'unité
Un CMS malformé, budgets, symboles runtime manquants, échecs de lecture de source et annulation lèvent EHPDFHeadlessCMSError ; les signatures invalides et chaînes de certificats de confiance insuffisante retournent des champs de résultat false explicites avec les détails OpenSSL
Cette fonction ne va pas chercher de preuves de révocation, ancres de confiance, horodatages ni données de certificats distantes et n'établit pas d'heure de signature historique