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