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

Сценарий метки времени документа · Опции