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