THPDFHeadlessDocument.TimestampToFile
function TimestampToFile(FieldIndex: Integer; const FileName: string;
const Options: THPDFHeadlessCMSOptions;
ReservedTimestampBytes: Integer = 16384): THPDFHeadlessCMSResult;
Создаёт настоящую метку времени документа в существующем неподписанном поле подписи и атомарно публикует независимый инкрементальный PDF-вывод
FieldIndex — индекс поля формы с нуля, возвращаемый FindFormField; он отличается от индекса заполненной подписи, принимаемого VerifySignature
Выходной словарь использует Type DocTimeStamp и SubFilter ETSI.RFC3161 с подлинным DER-токеном метки времени в его незашифрованном резерве Contents
DigestMethod выбирает SHA256, SHA384 или SHA512 для точного покрытого ByteRange PDF; райтер исправляет числовые диапазоны перед запросом токена
Timestamp.Transport обязан вернуть настоящий ответ RFC 3161, а Timestamp.TrustedCAFile обязан явно идентифицировать доверенные корни TSA; необязательные TrustedCRLFile и RequireRevocation валидируют текущие подписанные issuer'ом CRL
Ответ обязан привязать точный message imprint и свежую nonce запроса, использовать подходящий сертификат TSA и привязку ESS и пройти немедленные проверки подписи, назначения, цепочки и сконфигурированного отзыва до публикации
Ключ подписания приложения или сертификат подписанта не нужны; обязательные ограничения сертификата подписи оценивают фактический аутентифицированный сертификат TSA и встроенную цепочку сертификатов
Обязательные seed-ограничения обработчика подписи, SubFilter RFC3161, digest, reason, URL метки времени, subject и issuer сертификата и текущие именованные ограничения appearance остаются в силе
Аутентифицированные проверки DocMDP и FieldMDP разрешают только изменения, необходимые для вставки подлинной метки времени документа, включая вставку в существующее неподписанное поле подписи под P1 или блокировкой поля; это стандартное исключение не разрешает обычное подписание утверждения или изменения форм, запрещённые исходной политикой
Последующие проверки модификаций аутентифицируют метку времени, привязывают поле и подпись к её ревизии с меткой времени и продолжают защищать исходный сертифицированный граф объектов и заблокированные поля
Для источника до PDF 2.0 вывод добавляет объявление расширения ESIC с BaseVersion 1.7 и ExtensionLevel 1, когда нужно, сохраняет существующие профили расширений и повышает более старую эффективную версию PDF через Catalog Version 1.7, не трогая исходный заголовок
Поля только для чтения, алиасы источника и права заполнения форм AES остаются в силе; несовместимая сертификация утверждения, LegalAttestation, профили подписанного отзыва Adobe и transform-ссылки FieldMDP метки времени отклоняются
ReservedTimestampBytes — положительная ёмкость токена в пределах бюджета объекта документа; полный токен обязан поместиться в фиксированный шестнадцатеричный резерв
Создание сохраняет исходные байты источника и безопасность AES, держит Contents подписи незашифрованными, шифрует прочие метаданные по исходной политике и оставляет загруженный граф полей неизменным
Сбои, отмена, недопустимые ответы и недостаточные бюджеты сохраняют существующее назначение и удаляют неопубликованные staging-файлы
Токены отмены документа, CMS и метки времени при ненулевых значениях должны совпадать; покрытые данные читаются порциями не более 64 КиБ
Используйте AddSignatureField и SetSignatureFieldAppearance для подготовки нового виджета метки времени, а VerifySignature — для аутентификации результирующей метки времени документа
TimestampCount равен одному, а TimestampValid — true после успешного создания; CertificateTrusted и TimestampTrustEvaluated отражают явный проверенный проход доверия TSA
Профиль расширения следует ETSI EN 319 142-1, clause 5.6; необходимые изменения метки времени следуют разъяснению MDP ISO 32000-2