Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Добрый день! Я на самом старте разработки решения позволяющего автоматизированно подписывать pdf документы. Решение планируется на JDK 17+ CryptoPRO CSP установил, скачал тестовый сертификат certnew.cer (и даже он ставится в корневой каталог довернных сертификатов), но нет Хранилища при просмотре через cptools раздел Контейнеры пуст и как следствие, предполагаю, при вызове метода Код:KeyStore.getInstance("HDImageStore")
выскакивает ошибка об отсутствии хранилища Код:
Caused by: java.security.KeyStoreException: HDImageStore not found
at java.base/java.security.KeyStore.getInstance(KeyStore.java:873) ~[na:na]
at cryptopro.jcp.example.CertificateService.readCertSample(CertificateService.java:193) ~[classes/:na]
at cryptopro.jcp.example.CertificateService.initCertificatesStorage(CertificateService.java:72) ~[classes/:na]
... 37 common frames omitted
Caused by: java.security.NoSuchAlgorithmException: HDImageStore KeyStore not available
at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159) ~[na:na]
at java.base/java.security.Security.getImpl(Security.java:658) ~[na:na]
at java.base/java.security.KeyStore.getInstance(KeyStore.java:870) ~[na:na]
Задача: разработка программного решения для автоматизированной подписи документов pdf формата с использованиеем КриптоПРО CSP. Вопросы: - В директории своей JRE conf\security\java.security прописаны несколько провайдеров, одним из них я записал security.provider.14=ru.CryptoPro.JCSP.JCSP (не улавливаю связь с проблемой, но сделал по рекоменации c просторов интернета), а как же правильно подружить Java с КриптоПРО провайдером? - В найденых примерах (jcp-2.0.45042-A-15ec0663\sample-sources.jar) и на Github используется на старте всегда этот метод получения контейнера, что нужно учесть для корректного использования и начала разработки? - Подскажите, пожалуйста, нужен ли мне физический носитель либо лицензия для установки\создания контейнера и дальнейшей разработки? - Может я упускаю какой-нибудь исчерпывающий мануал (На сколько смог понять ЖТЯИ.00091-04 33 01. Руководство программиста.pdf для этого не подходит) по разработке с ответами по внедрению на Java и мне стоит начать копать с него? Заранее признателен всем неравнодушным ответившим. Отредактировано пользователем 25 июля 2024 г. 14:52:02(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
установил хранилище HDImageStore вместе с ключом. отображается с cstools корректно, подписание работает, проверка подписи тоже. Остается вопрос, почему же не видит приложение и выдает ошибку на методе Код:KeyStore.getInstance(JCP.HD_STORE_NAME);
Текст ошибки остается прежним: Код:Caused by: java.security.NoSuchAlgorithmException: HDImageStore KeyStore not available
at java.base/sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.base/java.security.Security.getImpl(Security.java:658)
at java.base/java.security.KeyStore.getInstance(KeyStore.java:870)
... 1 more
Отредактировано пользователем 24 июля 2024 г. 18:24:37(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.11.2010(UTC) Сообщений: 1,089
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 149 раз в 134 постах
|
А почитайте, для начала, документацию. Там и про разницу между JCP и JCSP будет и про хранилища тоже.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Почитал документацию, про разницу JCP и JCSP понял, про разницу хранилищ не нашел: ткните носом, пожалуйста, иначе не смогу ваш ответ рекомендовать как правильный. спасибо!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 21.11.2010(UTC) Сообщений: 1,089
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 149 раз в 134 постах
|
JCP использует хранилища в собственном формате. JCSP работает с хранилищами через "нативный" CSP. cptools - приложение "нативного" CSP, поэтому JCP не видит и не может увидеть "эти" ключи-сертификаты.
|
1 пользователь поблагодарил basid за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Благодарю! именно это начал подозревать, когда вы указали на разницу между jcp и jcsp - теперь стало понятно. Переключился на использование Java CSP и успешно подключаюсь (если можно так сказать) к хранилищу HDIMAGE и получаю ключ с сертификатом, сейчас прорабатываю вопрос проверки наличия и корректности подписи у "входящего" pdf документа средствами библиотеки itextpdf\5.5.5 из пакета java-csp-5.0.42119-A, затем мне нужно найти источник информации о возможности запроса сертификата у пользователя в вэб форме для подписания документов pdf в удаленной директории. Правильно ли я понимаю, что нужно будет смотреть документацию по Browser Plug-in, можете ли Вы подсказать, пожалуйста, направление для изучения "вглубь" этого вопроса? Отредактировано пользователем 25 июля 2024 г. 13:00:14(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Чтобы не плодить темы и сохранения истории, продолжу в этой: Здравствуйте, Знатоки. После некоторых мытарств с крипто подписью, обращаюсь к вам с новым вопросом, а именно: при использовании примера из класса SignVerifyPDFExample метод sign, программа требует участия пользователя для "прожатия" клавиши Enter на протяжении некоторого времени, в которое (как я понял) формируется пара ключей... Код:Нажимайте Enter или введите ESC для отмены
Код:Вы ввели 90% последовательности.
так вот вопрос: как без взаимодействия с пользователем сгенерировать это значение. И как всегда - заранее признателен за ваши ответы! Отредактировано пользователем 30 июля 2024 г. 12:27:58(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Привет, все!
Ушел от варианта подписи с генерацией ключевой пары, обращения в УЦ за сертификатом и приступил к разработке от Хранилища HDIMAGE, успешно подключаюсь к хранилищу, получаю chain, проверяю что алгоритм для тестового ключа GOST3411_2012_256 загружается, но на шаге обращения в метод getEncodedPKCS7 вылезает ошибка java.security.SignatureException: Unsupported method вылезает она из класса PdfPKCS7. Вопрос в версиях java-csp-5.0.42119-A и java-csp-5.0.45549-A-56fe5758 лежат jar'ники помеченные как patched - это уже пропатченные версии? ну и по традиции вопрос: в чем может быть проблема? Подскажите, пожалуйста, что нужно проверить и/или поправить?
Спасибо!
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Все не так! Предыдущий вопрос снимаю, т.к. сменив провайдера в методе sign с JCP на JCSP подпись стала проходить успешно, метод verify из примеров sample/PDF выдает результат Document wasn't modified. Другой вопрос, почему когда я открываю документ pdf в Adobe вырисовывает сообщение о том, что по крайней мере одна из подписей недействительна, а в панели подписи зияет Документ был изменен или поврежден. Почему такая разница, может я какой-то процесс должен финализировать или что еще может быть? Подскажите, может что-то измениться если подписывать "реальной" подписью? Спасибо! с ресурса "проверка-подписи.рф":Код:Базовая проверка ЭП и цепочки сертификатов не пройдена
Дополнительная проверка цепочки сертификатов не пройдена
Статус аккредитации издателя сертификата не установлен
Электронная подпись не является квалифицированной
Тип подписи: CMS
Название подписи:Signature1
Относится ко всему документу:Да
Основание подписи: Тестовая подпись (ГОСТ 2012-256)
Место подписи:Российская федерация
Контактные данные из подписи:
Дата подписи из PDF:2 августа 2024 г. 9:45:01 (Время и дата указаны в соответствии с часами компьютера подписанта и не могут быть доверенными.)
Дата подписи из самой подписи: 2 августа 2024 г. 6:45:01 (Время и дата указаны в соответствии с часами компьютера подписанта и не могут быть доверенными.)
Владелец сертификата:home
Действителен: с 30 июля 2024 г. по 30 сентября 2024 г.
Отредактировано пользователем 2 августа 2024 г. 10:50:19(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.07.2024(UTC) Сообщений: 12 Откуда: РФ Сказал(а) «Спасибо»: 1 раз
|
Не теряя надежды, что найдется понимающий человек и сможет помочь с проверкой подписей pdf, а может и кто-то, кто поможет разобраться с cades плагином: Подключил cadesplugin_api.js к своему приложению [ стек: vaadin 24.3.12, spring-boot 3.3.0, chrome 127.0.6533.89], кстати, странно - не смог найти кроме как в примере https://cryptopro.ru/sit...e/cades_bes_sample.html# или на github - нет его почему-то на сайте cryptopro, даже в разделе документации к cades plugin, ну да ладно. Так вот, теперь при загрузке получаю ошибку: Код:Ошибка при загрузке сертификатов: {message: 'Класс не зарегистрирован (0x80040154)', requestid: 4, type: 'error'}
при это перед этим запрашивает стандартное разрешение на выполнение операций. и нигде не могу найти объяснения причин, только рекомендацию проверить ActiveX - ну приехали, chrome же не поддерживает ActiveX... и все будто тупик. Помогите, люди добрые! Ну хоть последовательность как дебажить все это объясните темному;) Спасибо! Отредактировано пользователем 5 августа 2024 г. 20:34:07(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close