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