HPDFSignHeadlessCMS

function HPDFSignHeadlessCMS(Source: TStream;
  const ByteRange: array of Int64;
  const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes;
  const Options: THPDFHeadlessCMSOptions): SysUtils.TBytes;

La funzione firma gli intervalli dichiarati della sorgente con un certificato PEM esplicito e una chiave privata PEM non cifrata usando OpenSSL 3, restituisce SignedData CMS DER con contenuto detached, e ripristina la posizione della sorgente di proprietà del chiamante

La sorgente viene letta incrementalmente attraverso lo stesso BIO limitato usato dal verifier; l'input PEM e il DER generato devono stare in MaxCMSBytes, e gli intervalli firmati in MaxSignedBytes

RequireCAdES aggiunge l'attributo ESS del certificato di firma durante la generazione del CMS; validare il risultato con un file CA fidato esplicito quando si richiede la verifica CAdES

Le chiavi private restano array di byte di proprietà del chiamante; l'oggetto chiave OpenSSL viene liberato dopo la firma, e la funzione non chiede mai la password della chiave

Chiavi PEM cifrate, mismatch certificato/chiave, intervalli non validi, cancellazione, errori runtime e fallimenti dei limiti di output sollevano EHPDFHeadlessCMSError

Questa primitiva genera solo CMS; non crea un campo firma PDF, non riserva spazio Contents PDF, non pubblica un PDF firmato né contatta un servizio di timestamp o revoca