HPDFSignHeadlessCMS

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

A função assina as faixas de origem declaradas com um certificado PEM explícito e uma chave privada PEM não criptografada usando OpenSSL 3, retorna DER CMS SignedData com conteúdo detached e restaura a posição da origem, que é de posse do chamador

A origem é lida incrementalmente pelo mesmo BIO delimitado usado pelo verifier; a entrada PEM e o DER gerado precisam caber em MaxCMSBytes, e as faixas assinadas precisam caber em MaxSignedBytes

RequireCAdES adiciona o atributo ESS signing-certificate durante a geração do CMS; valide o resultado com um arquivo de CA confiável explícito quando exigir verificação CAdES

Chaves privadas permanecem arrays de bytes de posse do chamador; o objeto de chave OpenSSL é liberado após a assinatura, e a função nunca pede senha de chave

Chaves PEM criptografadas, mismatches certificado/chave, faixas inválidas, cancelamento, erros de runtime e falhas de limite de saída disparam EHPDFHeadlessCMSError

Esta primitiva gera apenas CMS; ela não cria um campo de assinatura PDF, não reserva espaço de Contents no PDF, não publica um PDF assinado e não contata serviço de timestamp ou de revogação