HPDFSignHeadlessCMS
function HPDFSignHeadlessCMS(Source: TStream; const ByteRange: array of Int64; const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes; const Options: THPDFHeadlessCMSOptions): SysUtils.TBytes;
A função assina os intervalos de fonte declarados com um certificado PEM explícito e uma chave privada PEM não encriptada usando OpenSSL 3, devolve DER CMS SignedData com conteúdo detached e restaura a posição da fonte, que é própria de quem chama
A fonte é lida incrementalmente através da mesma BIO delimitada usada pelo verificador; a entrada PEM e o DER gerado têm de caber em MaxCMSBytes, e os intervalos assinados têm de caber em MaxSignedBytes
RequireCAdES acrescenta o atributo ESS signing-certificate durante a geração CMS; valide o resultado com um ficheiro de CA de confiança explícito quando exigir verificação CAdES
As chaves privadas permanecem arrays de bytes próprios de quem chama; o objeto de chave OpenSSL é libertado após a assinatura, e a função nunca pede a palavra-passe de uma chave
Chaves PEM encriptadas, desacertos entre certificado e chave, intervalos inválidos, cancelamento, erros de runtime e falhas de limite de saída levantam EHPDFHeadlessCMSError
Esta primitiva gera apenas CMS; não cria um campo de assinatura PDF, não reserva espaço de Contents PDF, não publica um PDF assinado nem contacta um serviço de timestamps ou de revogação