HPDFSignHeadlessCMS
function HPDFSignHeadlessCMS(Source: TStream; const ByteRange: array of Int64; const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes; const Options: THPDFHeadlessCMSOptions): SysUtils.TBytes;
La función firma los rangos de fuente declarados con un certificado PEM explícito y una clave privada PEM sin cifrar usando OpenSSL 3, devuelve DER CMS SignedData con contenido detached y restaura la posición de la fuente propiedad del llamador
La fuente se lee incrementalmente a través del mismo BIO acotado que usa el verificador; la entrada PEM y el DER generado deben caber en MaxCMSBytes, y los rangos firmados deben caber en MaxSignedBytes
RequireCAdES añade el atributo ESS signing-certificate durante la generación del CMS; valide el resultado con un archivo de CA confiable explícito cuando exija verificación CAdES
Las claves privadas siguen siendo arrays de bytes propiedad del llamador; el objeto de clave OpenSSL se libera tras firmar, y la función nunca pide una contraseña de clave
Las claves PEM cifradas, las discrepancias certificado/clave, los rangos inválidos, la cancelación, los errores de runtime y los fallos de límite de salida lanzan EHPDFHeadlessCMSError
Esta primitiva solo genera CMS; no crea un campo de firma PDF, no reserva espacio de Contents PDF, no publica un PDF firmado ni contacta un servicio de timestamp o revocación