Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

5 Страницы<12345>
Опции
К последнему сообщению К первому непрочитанному
Offline vgNikoz  
#21 Оставлено : 16 октября 2018 г. 15:01:11(UTC)
vgNikoz

Статус: Участник

Группы: Участники
Зарегистрирован: 11.10.2018(UTC)
Сообщений: 14
Российская Федерация
Откуда: Краснодар

Поблагодарили: 2 раз в 2 постах
Автор: Андрей Писарев Перейти к цитате
Получили данные от сервера\отправили обратно.
GET\POST


Загвоздка не в отправке файла, а в получении подписанного. В примере https://www.cryptopro.ru...page/cades_bes_file.html в форме прикрепляется файл, затем он преобразуется в base64, после чего подписывается и в таком же виде выводиться на экран. А вот как после подписания вернуть прикрепленный файл, только подписанный не понятно

Автор: Андрей Писарев Перейти к цитате
В чём сложности\какой язык разработки на сервере?

PHP
Online Андрей Писарев  
#22 Оставлено : 16 октября 2018 г. 18:55:33(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Автор: vgNikoz Перейти к цитате
в форме прикрепляется файл, затем он преобразуется в base64, после чего подписывается и в таком же виде выводиться на экран. А вот как после подписания вернуть прикрепленный файл, только подписанный не понятно

Автор: Андрей Писарев Перейти к цитате
В чём сложности\какой язык разработки на сервере?

PHP


Куда вернуть? Файл полностью доступен из js.

В примере получается присоединенная подпись (сам файл+подпись).
Если требуется только сама подпись - вызвать функцию подписания с указанием на это.


Как передать на сервер файл указанный в форме, а также саму подпись методом POST - в этом проблема?
Техническую поддержку оказываем тут
Наша база знаний
Offline vgNikoz  
#23 Оставлено : 17 октября 2018 г. 10:58:26(UTC)
vgNikoz

Статус: Участник

Группы: Участники
Зарегистрирован: 11.10.2018(UTC)
Сообщений: 14
Российская Федерация
Откуда: Краснодар

Поблагодарили: 2 раз в 2 постах
Автор: Андрей Писарев Перейти к цитате
Как передать на сервер файл указанный в форме, а также саму подпись методом POST - в этом проблема?


Проблема была в сохранении base64 обратно в файл. Разобрался с этим вопросом, файл сохраняется. Но возникло еще пару вопросов:
- после сохранения файла, я пытаюсь его открыть через Adobe Acrobat Reader(в нем же есть функция проверки наличия подписи), но он мне не показывает, что подпись есть. Возможно ли это из-за того что сертификат используемый для подписи файла тестовый? проверил файл на https://www.gosuslugi.ru/pgu/eds/, данные о подписи выдал
- где-то находил, что при подписании файла возвращается сам файл и еще файл .sig, тут так не обязательно? или все же нужно в итоге разделять файл и подпись и сохранять их отдельно?
- и есть ли функции проверки наличия подписи и ее корректность используя сам плагин?

Отредактировано пользователем 17 октября 2018 г. 11:25:49(UTC)  | Причина: Не указана

Offline Антонимиус  
#24 Оставлено : 17 октября 2018 г. 12:07:23(UTC)
Антонимиус

Статус: Участник

Группы: Участники
Зарегистрирован: 03.10.2018(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 9 раз
Автор: Андрей Писарев Перейти к цитате
Автор: vgNikoz Перейти к цитате
Автор: Антонимиус Перейти к цитате
Дальше в демо примере фаил загружается с компьютера пользователя, а как сделать загрузку файла, который нужно подписать с сайта? После того как фаил будет подписан плагином его нужно отправить на сервер, как это сделать?


У вас получилось такое реализовать?



Получили данные от сервера\отправили обратно.
GET\POST

В чём сложности\какой язык разработки на сервере?


Язык на сервере php
Но клиент то работает с плагином. Собственно вопрос как передать фаил с сервера плагину? И как потом подписанный фаил вернуть на сервер? То есть плагин что возвращает форму с файлом и достаточно сделать ее пост?
Есть простые примеры реализации?
Offline vgNikoz  
#25 Оставлено : 17 октября 2018 г. 12:26:23(UTC)
vgNikoz

Статус: Участник

Группы: Участники
Зарегистрирован: 11.10.2018(UTC)
Сообщений: 14
Российская Федерация
Откуда: Краснодар

Поблагодарили: 2 раз в 2 постах
Автор: Антонимиус Перейти к цитате
Язык на сервере php
Но клиент то работает с плагином. Собственно вопрос как передать фаил с сервера плагину? И как потом подписанный фаил вернуть на сервер? То есть плагин что возвращает форму с файлом и достаточно сделать ее пост?
Есть простые примеры реализации?


я взял пример https://www.cryptopro.ru...age/cades_bes_file.html, тут вся работа построена на js, вам нужны файлы Code.js, cadesplugin_api.js, для firefox нужен еще async_code.js
Я работал через firefox поэтому вносил корректировки в файл async_code.js, там есть функция подписания файла SignCadesBES_Async_File.
Получается, что вы работаете только в браузере, выбираете файл и ключ которым подписать. При загрузке файла он перекодируется в строку base64, затем эта строка подписывается ключем и возвращается этот же файл с подписью тоже в base64, для обратного преобразования этой строки я добавил функции в этот файл:
Код:

function saveFile(Signature, file, mime) {
    urltoFile(Signature, file, mime).then(function(file){
        var data = new FormData();

        data.append('file', file);

        $.ajax({
            type: 'POST',
            url: '/ajax/test.php',
            data: data,
            cache: false,
            dataType: 'json',
            processData: false,
            contentType: false,
            success: function(response) {
                console.log(response);
            }
        });
    });
}

function urltoFile(url, filename, mimeType){
    console.log(url);
    return (fetch(url)
            .then(function(res){return res.arrayBuffer();})
            .then(function(buf){return new File([buf], filename, {type:mimeType});})
    );
}

а в функции SignCadesBES_Async_File перед выводом этой строки подписанного файла в textarea добавил вызов saveFile('data:application/pdf;base64,' + Signature, 'test.pdf', 'application/pdf');
только нужно еще доделал определение формата загруженного файла и подставлять именно его. а в файле test.php я работаю с $_FILES и просто сохраняю файл
thanks 1 пользователь поблагодарил vgNikoz за этот пост.
Антонимиус оставлено 17.10.2018(UTC)
Offline Антонимиус  
#26 Оставлено : 17 октября 2018 г. 12:51:00(UTC)
Антонимиус

Статус: Участник

Группы: Участники
Зарегистрирован: 03.10.2018(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 9 раз
[удалить это сообщение так как ответ выше]

Отредактировано пользователем 17 октября 2018 г. 12:53:12(UTC)  | Причина: Не указана

Offline Антонимиус  
#27 Оставлено : 18 октября 2018 г. 12:08:09(UTC)
Антонимиус

Статус: Участник

Группы: Участники
Зарегистрирован: 03.10.2018(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 9 раз
Правильно ли я понимаю что текст который выводится после "Подпись сформирована успешно" это и есть base64 строка, которую потом вы принимаете по аяксу в test.php а там идет сохранение в фаил что то на подобии такого:
Цитата:
$data = base64_decode($pdf_string);
file_put_contents('file.pdf',$data);

Отредактировано пользователем 18 октября 2018 г. 12:08:59(UTC)  | Причина: Не указана

Online Андрей Писарев  
#28 Оставлено : 18 октября 2018 г. 13:11:17(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2035 раз в 1579 постах
Здравствуйте.

Учтите, что в примерах: результат в base64 - это файл с присоединенной подписью и записав ответ в .pdf - не сможете работать, как с PDF, т.к. это CMS, а не исходный файл (PDF).

Насчет PDF\DOCX\XLSX - необходимо использовать другие функции (внутренняя реализация подписи).
Продукты для этого - DSS Lite + плагин.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
Антонимиус оставлено 18.10.2018(UTC)
Offline Антонимиус  
#29 Оставлено : 18 октября 2018 г. 13:38:04(UTC)
Антонимиус

Статус: Участник

Группы: Участники
Зарегистрирован: 03.10.2018(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 9 раз
Автор: Андрей Писарев Перейти к цитате
Здравствуйте.

Учтите, что в примерах: результат в base64 - это файл с присоединенной подписью и записав ответ в .pdf - не сможете работать, как с PDF, т.к. это CMS, а не исходный файл (PDF).

А как тогда быть? Как сейчас я планирую делать. Клиент заходит на страницу с сервера ему подгружается фаил он его подписывает после чего я получаю base64 строку и по аяксу сохраняю назад на сервере фаил с подписью. Вы же говорите, что сохраненный таким образом pdf будет битым и его нельзя будет прочитать pdf ридерами?

Автор: Андрей Писарев Перейти к цитате
Насчет PDF\DOCX\XLSX - необходимо использовать другие функции (внутренняя реализация подписи).
Продукты для этого - DSS Lite + плагин.

То есть вместо КриптоПро CSP нужно что бы у клиента был установлен DSS Lite?
Offline tarzan_pasha  
#30 Оставлено : 18 октября 2018 г. 13:54:57(UTC)
tarzan_pasha

Статус: Участник

Группы: Участники
Зарегистрирован: 08.10.2018(UTC)
Сообщений: 15
Российская Федерация

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей Писарев Перейти к цитате
Здравствуйте.

Учтите, что в примерах: результат в base64 - это файл с присоединенной подписью и записав ответ в .pdf - не сможете работать, как с PDF, т.к. это CMS, а не исходный файл (PDF).

Насчет PDF\DOCX\XLSX - необходимо использовать другие функции (внутренняя реализация подписи).
Продукты для этого - DSS Lite + плагин.


Помогите мне пожалуйста. Подписываю обычный текстовый файл при помощи
https://www.cryptopro.ru/sites/d...page/cades_bes_file.html
С сертификатом вроде порядок:
sert
подписываю файл. Как я понял на выходе получаем присоединенную подпись.
Копирую ее в файл test.txt.sig
и иду на сервис проверить
http://qs.cryptopro.ru/SVS/Verify/
parametrs
потом проверка выдает ошибку.
ошибка

Как мне добиться, чтобы все работало? Моя задача - реализовать функционал, подписывающий прикрепленные файлы и чтобы их можно было потом проверить. В данном случае для проверки я использую http://qs.cryptopro.ru/SVS/Verify/ - ведь мне нужно убедиться, что все подписывается правильно и после этого уже реализовывать проверку сертификата и подписи на стороне сервера.

Локально мне удалось запустить этот пример. Но все равно если это текстовое поле сохранить в виде файла, проверка завершается ошибкой.
Где мне найти сервис, который бы проверял подписанные мною документы корректно. Чтоб любой пользователь мог зайти на сайт, подписать файлы используя свой сертификат и ключи, а потом чтобы эти файлы проходили проверку.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
5 Страницы<12345>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.