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