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 la fuente declarados con un certificado PEM explícito y una clave privada PEM sin cifrar usando OpenSSL 3, devuelve SignedData CMS DER 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 agrega el atributo ESS de certificado de firma durante la generación del CMS; valida el resultado con un archivo de CA confiable explícito cuando exijas verificación CAdES
Las claves privadas siguen siendo arreglos de bytes propiedad del llamador; el objeto de clave de OpenSSL se libera después de firmar, y la función nunca pide un password de clave
Claves PEM cifradas, desajustes certificado/clave, rangos inválidos, cancelación, errores de runtime y fallos de límites de salida lanzan EHPDFHeadlessCMSError
Esta primitiva solo genera CMS; no crea un campo de firma PDF, no reserva espacio de Contents del PDF, no publica un PDF firmado ni contacta un servicio de timestamp o revocación