HPDFVerifyHeadlessCMS

HPDFHeadlessCMS 用 OpenSSL 3 与共享签名 ByteRange 校验器,针对调用方自有 TStream 校验 detached CMS 签名

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

两元素范围必须覆盖完整流;四元素范围从 0 开始且排除一个非空区间,各对有序有界并使用防溢出算术

CMS 必须含 detached 内容与至少一个签名者;校验器认证内容摘要、已签名属性与每个签名者,不做全源聚合,接受尾随零填充,拒绝非零尾随 CMS 数据

源所有权留在调用方,其位置会恢复;校验期间调用方必须提供独占串行访问

SignatureValid 描述密码学完整性;证书信任只在 TrustedCAFile 提供显式 PEM 信任锚时单独评估

RequireCAdES 要求已认证的 ESS v1 或 v2 signing-certificate 绑定;其证书哈希与可选颁发者、序列号必须标识真实签名者,与证书信任无关

即使 RequireCAdES 为 false,既有 ESS 属性也会检查;重复属性、多值、畸形序列与尾随 ASN.1 字节都会被拒绝;显式信任锚可启用单独的证书链校验轮

函数校验数值范围,但不把排除区间绑定到 PDF Contents token;该文档级检查请用 THPDFHeadlessDocument.VerifySignature

加载器设置了 HOTPDF_OPENSSL_LIBRARY 时用它,否则 Linux 用 libcrypto.so.3、Windows 用 libcrypto-3.dll;运行时库必须匹配进程架构,首个成功加载的库保持生效直到单元 finalization

畸形 CMS、预算、缺失运行时符号、源读取失败与取消抛出 EHPDFHeadlessCMSError;无效签名与不可信证书链返回显式 false 结果字段并附 OpenSSL 细节

此函数不抓取吊销证据、信任锚、时间戳或远程证书数据,也不建立历史签名时间