HPDFVerifyHeadlessCMS
HPDFHeadlessCMS weryfikuje odłączone podpisy CMS względem należącego do wywołującego TStream używając OpenSSL 3 i współdzielonego walidatora ByteRange podpisów
function HPDFVerifyHeadlessCMS(Source: TStream; const ByteRange: array of Int64; const CMSDER: SysUtils.TBytes; const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;
Zakres dwuelementowy musi pokrywać kompletny strumień; zakres czteroelementowy startuje w zerze i wyłącza jeden niepusty interwał, z uporządkowanymi ograniczonymi parami i arytmetyką bezpieczną względem przepełnienia
CMS musi zawierać odłączoną zawartość i co najmniej jednego podpisującego; weryfikator uwierzytelnia digest zawartości, podpisane atrybuty i każdego podpisującego bez agregowania całego źródła, przyjmuje resztkowe bajty zerowe i odrzuca niezerowe resztkowe dane CMS
Własność źródła pozostaje po stronie wywołującego, jego pozycja jest przywracana, a wywołujący musi zapewnić wyłączny dostęp szeregowy podczas weryfikacji
SignatureValid opisuje integralność kryptograficzną; zaufanie do certyfikatów jest oceniane osobno tylko, gdy TrustedCAFile dostarcza jawne kotwice zaufania PEM
RequireCAdES wymaga uwierzytelnionego wiązania certyfikatu podpisującego ESS v1 albo v2; jego hash certyfikatu i opcjonalni wystawca i numer seryjny muszą identyfikować rzeczywistego podpisującego, niezależnie od zaufania do certyfikatów
Istniejące atrybuty ESS są sprawdzane nawet, gdy RequireCAdES jest false; zduplikowane atrybuty, wielokrotne wartości, zniekształcone sekwencje i resztkowe bajty ASN.1 są odrzucane, a jawne kotwice zaufania włączają osobny przebieg weryfikacji łańcucha certyfikatów
Funkcja waliduje zakresy numeryczne, ale nie wiąże wyłączonej przerwy do tokena PDF Contents; użyj THPDFHeadlessDocument.VerifySignature dla tej kontroli na poziomie dokumentu
Wczytywanie używa HOTPDF_OPENSSL_LIBRARY, gdy ustawione, w przeciwnym razie libcrypto.so.3 na Linuksie albo libcrypto-3.dll na Windows; biblioteka runtime musi pasować do architektury procesu, a pierwsza pomyślnie wczytana biblioteka pozostaje aktywna do finalizacji jednostki
Zniekształcony CMS, budżety, brakujące symbole runtime, niepowodzenia odczytu źródła i anulowanie podnoszą EHPDFHeadlessCMSError; niepoprawne podpisy i niezaufane łańcuchy certyfikatów zwracają jawne pola false wyniku ze szczegółami OpenSSL
Ta funkcja nie pobiera dowodów odwołań, kotwic zaufania, znaczników czasu ani zdalnych danych certyfikatów i nie ustala historycznego czasu podpisu