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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vladislav starostin  
#1 Оставлено : 30 октября 2023 г. 12:19:13(UTC)
vladislav starostin

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

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте!
Пишу веб-сервис с опцией подписания документа с помощью квалифицированной ЭЦП.
Использовал КриптоПро ЭЦП SDK и браузерный плагин в связке для подписания документа. На стороне компьютера csp 5.0. Со стороны sdk использовал асинхронный пример с использованием fileApi из https://docs.cryptopro.ru/cades/plugin/plugin-samples/plugin-samples-fileapi с изменениями для своего проекта, но не касаясь дефолтных констант плагина и sdk. На выходе все работает, sSignedMessage рендерится и срабатывает "Signature verified". Есть следующие вопросы:
1) Как мне узнать, получилась прикрепленная или открепленная подпись и как вообще дать пользователю выбор? Сейчас криптопро просто просит выбрать контейнер и ввести пароль.
2) По комментариям в коде я в принципе догадываюсь, что подпись открепленная. Если это так, как мне выгрузить подписанный pdf файл обратно на сервер, если в oFile переменную я закладываю blob-объект, сделанный из этого самого pdf файла? То есть, в какой переменной хранится подписанная версия pdf файла после непосредственно подписания?
3) В дополнение к первому вопросу, как дать пользователю выбрать алгоритм подписания? Есть ли такой функционал вообще в sdk?
Был бы очень признателен, если бы смогли проинструктировать по этим вопросам. Перерыл уже пол форума и всю документацию плагина вдоль и поперек, но вопросы эти все равно остаются
Offline Андрей *  
#2 Оставлено : 30 октября 2023 г. 12:56:49(UTC)
Андрей *

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

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

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


В документации есть описание и примеры.

SignCades
Цитата:

HRESULT SignCades (
VARIANT Signer,
CADESCOM_CADES_TYPE CadesType,
VARIANT_BOOL bDetached,
CAPICOM_ENCODING_TYPE EncodingType,
BSTR *pVal
);
bDetached Вид подписи: отделенная (true) или совмещенная (false). По умолчанию совмещенная.



Исходный файл и файл ЭП (отсоединенная) - передаются на сервер?
Можно, если исходный файл есть на сервере, отправлять только файл ЭП и проверять корректность на сервере.

Алгоритм связан с алгоритмом сертификата.
Если выбран ГОСТ - то будет ГОСТ, если RSA - то RSA ... или вопрос в чём? Как задать RSA для ГОСТ ключа )?
Техническую поддержку оказываем тут
Наша база знаний
Offline vladislav starostin  
#3 Оставлено : 30 октября 2023 г. 15:23:46(UTC)
vladislav starostin

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

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

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


В документации есть описание и примеры.

SignCades
Цитата:

HRESULT SignCades (
VARIANT Signer,
CADESCOM_CADES_TYPE CadesType,
VARIANT_BOOL bDetached,
CAPICOM_ENCODING_TYPE EncodingType,
BSTR *pVal
);
bDetached Вид подписи: отделенная (true) или совмещенная (false). По умолчанию совмещенная.



Исходный файл и файл ЭП (отсоединенная) - передаются на сервер?
Можно, если исходный файл есть на сервере, отправлять только файл ЭП и проверять корректность на сервере.

Алгоритм связан с алгоритмом сертификата.
Если выбран ГОСТ - то будет ГОСТ, если RSA - то RSA ... или вопрос в чём? Как задать RSA для ГОСТ ключа )?


Внесу небольшую поправку, sdk я не использую, оговорился) эцп плагин со стороны браузера и cadesplugin для связи расширения с криптопро csp
1)Насчет переменной bDetached. Ее можно задать и через кадесплагин, получается? data.SignCades(oSigner, CADESCOM_CADES_BES, true), если я правильно понял, то третий параметр здесь - это как раз и есть тип подписи? тогда с этим понятно
2)По второму вопросу, у меня есть небольшое недопонимание в том, не как отправлять и принимать файлы, а что конкретно мне нужно сохранять в случае присоединенной и отсоединенной подписи) Если подпись отсоединенная, то в sSignedMessage просто хеш подписи лежит, тогда мне и файл, и хеш нужно сохранить. В случае присоединенной в sSignedMessage хранится контейнер с файлом и подписью, получается?
Offline Андрей *  
#4 Оставлено : 30 октября 2023 г. 16:03:46(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
да, только не хеш подписи, а хеш файла + дата\время в подписанных атрибутах.

если Detached - то нужен исходный файл,
если Detached=false - то исходный файл внутри закодирован.


Проверки на сервере нет получается?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
vladislav starostin оставлено 31.10.2023(UTC)
Offline vladislav starostin  
#5 Оставлено : 30 октября 2023 г. 17:34:26(UTC)
vladislav starostin

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей * Перейти к цитате
да, только не хеш подписи, а хеш файла + дата\время в подписанных атрибутах.

если Detached - то нужен исходный файл,
если Detached=false - то исходный файл внутри закодирован.


Проверки на сервере нет получается?


Да, все правильно, на клиентских машинах установлены списки отзывов и корневые сертификаты из цепочки, так что отталкиваемся от процесса непосредственно на клиентской стороне.
Пока что все понятно, спасибо за то, что проинструктировали
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.