Сценарии подписания в нативном Linux
Версионированный колбэк-ABI выполняет задания sign со schemaVersion 1 над загруженными документами или явными input-колбэками; исходные ревизии источника, идентификаторы документов и аутентифицированные политики AES-256 R5/R6 сохраняются
Идентичность подписания
Передайте certificatePEM и privateKeyPEM или канонический дополненный pfxBase64 и pfxPassword; смешивать эти формы идентичности нельзя
password аутентифицирует явный PDF-ввод; загруженный контекст удерживает свой PDF-пароль, а отдельный пароль PFX аутентифицирует контейнер подписания
Декодирование PFX проверяет алфавит, дополнение и неиспользуемые биты до разбора ограниченного контейнера OpenSSL; приватные буферы идентичности очищаются после операции
Поля подписи и appearance
field выбирает существующее неподписанное поле подписи; установите createField: true, чтобы создать новое полное имя поля на page с нулевым индексом
Координаты нового поля — пользовательское пространство PDF: left, bottom, right и top по умолчанию равны 36, 36, 240 и 108; существующее имя нельзя создать заново
Необязательный caption генерирует явный Unicode-appearance со встроенным шрифтом TrueType, отображением ToUnicode и нативным шейпингом сложных письменностей; fontFamily по умолчанию DejaVu Sans, а fontSize — 12
Профиль и сертификация
cades выбирает ETSI.CAdES.detached; trustedCAFile поставляет явную политику CA для проверки доверия в момент подписания, а reservedCMSBytes по умолчанию 16384
certificationPermission равен 0 для подписи утверждения или 1, 2 или 3 для первой сертификационной подписи документа; райтер создаёт соответствующий transform DocMDP и привязку прав каталога
Ограничения прав по пользовательскому паролю, поля только для чтения, существующие подписи и ограничения сертификации остаются в силе согласно нативной политике подписания документа
Транзакционная публикация
Переносимый Pascal-API TimestampToFile создаёт независимую DocTimeStamp с ETSI.RFC3161 поверх ByteRange PDF, включая объявление ESIC, явное доверие TSA и политику CRL и аутентифицированное исключение метки времени DocMDP/FieldMDP
Эта точка входа метки времени документа — Pascal-API; колбэк метки времени ABI ниже поставляет метки времени подписи для существующих заданий sign
Расширенный транспорт меток времени ABI поставляет фактические ответы RFC 3161 через синхронный принадлежащий вызывающему колбэк с ограниченными байтами ответа, общей отменой и явной политикой доверия/отзыва TSA
Output- и result-колбэки получают полностью подготовленную подпись; до публикации колбэками ABI перезагружает кандидата, чтобы валидировать контекст подписанного документа
Только успешная публикация заменяет загруженный контекст; недопустимые идентичности, создание полей, бюджеты, отмена или сбой колбэка сохраняют предыдущий документ и его дерево полей
Output-колбэки принадлежат вызывающему и могут уже потребовать байты, когда последующий колбэк падает; вызывающим, которым нужен внешний rollback, следует самим ставить эти байты в промежуточное хранилище
Приёмка
Linux FPC 3.2.2 и 3.3.1 каждый проходит 270 реальных assertions ctypes, 228 независимых проверок PDF/изображений/безопасности/CMS, 33 assertions C ABI и 80 конкурентных операций с общим дескриптором
Независимые проверки аутентифицируют политики ID/безопасности AES, валидируют CMS и CAdES с OpenSSL, отклоняют подменённое содержимое, инспектируют сертификационные transform и шрифты встроенных appearance и проверяют фактические пиксели видимых подписей
Нативный C ABI · Pascal-подписание PFX · Pascal-транспорт меток времени