Добавление LTV (долгосрочной проверки) делает недействительным байтовый диапазон - PullRequest
0 голосов
/ 05 апреля 2020

Я пишу небольшую библиотеку, предназначенную для высокоуровневой (простой в использовании) библиотеки для цифровой подписи PDF-файлов, созданных с помощью библиотеки WeasyPrint (https://github.com/Kozea/WeasyPrint).

У меня уже есть работа с самозаверяющими сертификатами, и сейчас я работаю над адаптером для цифровых подписей из Globalsign DSS API (https://www.globalsign.com/en/resources/apis/api-documentation/digital-signing-service-api-documentation.html)

У меня есть все работая отдельно от LTV (долгосрочной проверки), для которого требуется словарь DSS, в котором перечислены сведения OCSP и все сертификаты в цепочке (для обработки отзыва).

Когда я добавляю DSS, который должен следовать после данных подписи было написано, я получаю сообщение об ошибке в Adobe Acrobat, в котором говорится, что байтовый диапазон подписи недействителен.

Как мне go включить функцию DSS без аннулирования байтового диапазона?

несколько интенсивно изучал библиотеку iText, но она настолько абстрагирована, что трудно разобрать реальные записываемые данные. Я все еще пользуюсь возможностью пометить iText, потому что это своего рода отраслевой стандарт в работе с цифровыми подписями в PDF.

1 Ответ

0 голосов
/ 10 апреля 2020

Я понял это благодаря этому красиво названному документу: Electroni c Подписи и инфраструктуры (ESI); PDF Advanced Electroni c Подпись Профили; Часть 4: Долгосрочный PAdES - Профиль PAdES-LTV Заголовок может быть многословным, но документ на самом деле очень краткий и полезный.

DSS может быть добавлен после исходного байтового диапазона также добавление временной метки, которая принимает дайджест другого байтового диапазона, который включает в себя весь файл - включая DSS - в конце файла. Вы должны включить расширение, чтобы это работало, см. «Глава 4.4 Словарь расширений». В связанном документе есть более подробные подробности.

Думаю, стоит упомянуть, что я узнал о некоторых синтаксических ошибках в своем PDF-файле с помощью утилит Apache PDFBox. Я sh Я нашел это раньше.

Если вам интересно, я опубликовал библиотеку на github: https://github.com/hejsan/WeasySign. Это уже работает, но нужно немного доработать.

...