HPDFFinalizeHeadlessSignatureReservation
function HPDFFinalizeHeadlessSignatureReservation(Target: TStream;
const Reservation: THPDFHeadlessSignatureReservation;
const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes;
const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;
Завершает готовый staging-поток PDF, используя свежее резервирование от парного райтера
Поток вызывающего должен быть позиционируемым и доступным на чтение/запись; его финальный размер определяет подписанную ревизию, а все байты вне точного зарезервированного гэпа Contents аутентифицируются
Функция проверяет резервирование, патчит числовые слоты фиксированной ширины, стримит реальные диапазоны байтов в OpenSSL 3, пишет DER как hexadecimal-байты, очищает неиспользованное резервное дополнение и немедленно проверяет целостность CMS
Полный буфер исходного файла не собирается, позиция потока восстанавливается, а длина файла и позиции xref остаются неизменными
Options соблюдают бюджеты подписанных байтов и CMS и отмену; RequireCAdES должен совпадать с профилем резервирования
Возвращённый статус доверия вычисляется только при явном доверенном файле CA
Сбой может оставить пропатченные байты в неопубликованном staging-потоке; отбросьте его и никогда не публикуйте после исключения
Для автоматической уборки staging, сохранения шифрования, защиты от совпадений с источником и атомарной публикации используйте THPDFHeadlessDocument.SignToFile