HPDFCreateHeadlessDocumentTimestamp
function HPDFCreateHeadlessDocumentTimestamp(Source: TStream;
const ByteRange: array of Int64; const Options: THPDFHeadlessCMSOptions;
out SignerCertificatePEM: SysUtils.TBytes): SysUtils.TBytes;
Создаёт настоящий токен метки времени RFC 3161 по переданным вызывающим покрываемым диапазонам байтов PDF через переносимый провайдер OpenSSL 3
Позиционируемый источник принадлежит вызывающему; две записи должны покрывать источник целиком, а четыре записи покрывают точную историческую ревизию с одним непустым исключённым интервалом Contents
DigestMethod выбирает SHA256, SHA384 или SHA512; нативное потоковое вычисление хеша использует ограниченные чтения по 64 KiB и учитывает общий CancellationToken
Требуются Timestamp.Transport и явный Timestamp.TrustedCAFile; при выдаче проверяются точный отпечаток и свежий nonce запроса, реальный TSA CMS и привязка ESS, критический timeStamping EKU, имя подписанта, цепочка сертификатов и настроенные свидетельства CRL
Возвращённые байты содержат полный валидированный DER-токен метки времени без резервного дополнения PDF
SignerCertificatePEM возвращает сначала аутентифицированного подписанта TSA, затем встроенные записи цепочки сертификатов; приватный ключ не требуется и не возвращается
MaxSignedBytes ограничивает длину покрываемого контента; MaxCMSBytes — байты токена и сериализованной цепочки сертификатов, а специфичные для меток времени лимиты ответов остаются в силе
Все позиции источника восстанавливаются при успехе и при сбое; низкоуровневые вызывающие сами занимаются патчингом резервирования, staging и атомарной публикацией
Для валидации политики поля подписи и полного инкрементального PDF-сценария используйте THPDFHeadlessDocument.TimestampToFile