Статус: Новичок
Группы: Участники
Зарегистрирован: 21.07.2022(UTC) Сообщений: 2 
|
Всем доброго дня! В нашем проекте (web приложение) возникла необходимость отправлять подписанные данные (PDF 1/A) в гос. сервис. Используем для этого Browser plug-in. Штука заключается в том, что требуется подписать именно двоичный файл. То есть нельзя перевести в base64 и потом подписать - на той стороне проверяют подпись именно оригинального (двоичного) файла. Искал тут по форуму, нашел такую отсылку : https://cpdn.cryptopro.r...es/content-encoding.html (статья старая, непонятно на сколько ей можно верить, но другой нет) пишут, что вроде как проблематично. Обратил внимание, что во всех примерах при использовании плагина передают параметр CADESCOM_BASE64_TO_BINARY - так плагин понимает, что входные данные нужно перевести из base64 в бинарные (получается, что на вход нужно подавать именно base64) Испробовал уже +100500 способов подписания - так или иначе подпись получается не валидная. Последний вариант был такой - запрашиваем с бэка pdf, кладем его в blob и передаем на вход функции SignCades (предварительно отключив CADESCOM_BASE64_TO_BINARY) - получаем ошибку "неверный параметр". Может кто то сталкивался с подобной задачей - подписать на клиенте двоичный файл (а не его base64 версию) ?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
Здравствуйте. Может просто в коде неправильно указали параметр? Где он? Подпись отсоединенная должна быть, а в коде не указали и получили присоединенную? Приложите исходный (текстовый) pdf и подпись (тестовым сертификатом), которую получаете (в архиве) или пришлите в ЛС. Цитата:Штука заключается в том, что требуется подписать именно двоичный файл. То есть нельзя перевести в base64 и потом подписать - на той стороне проверяют подпись именно оригинального (двоичного) файла. https://docs.cryptopro.r...in-samples-sign-detached// Значение свойства ContentEncoding должно быть задано до заполнения свойства Content yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY); yield oSignedData.propset_Content(dataInBase64); SignCades(oSigner, CADESCOM_CADES_BES, true); |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,159   Сказал «Спасибо»: 618 раз Поблагодарили: 2389 раз в 1880 постах
|
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 945  Откуда: Крипто-Про Поблагодарили: 117 раз в 106 постах
|
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.07.2022(UTC) Сообщений: 2 
|
Коллеги, спасибо! Все получилось. Получаем через AJAX файл (blob объект), загружаем в oFReader, затем содержимое oFReader (base64) отдаем на подпись SignCades. В итоге получаем валидную подпись оригинального PDF файла.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,444  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 743 раз в 638 постах
|
|
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close