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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline asmirnov84  
#1 Оставлено : 17 апреля 2013 г. 17:33:01(UTC)
asmirnov84

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

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

jboss-as-7.1.1.Final, Oracle jdk1.7.0_09, Ubuntu 12.10, Windows Server 2012

Вызов Signature.getInstance("GOST3411withGOST3410EL"); при установленном jcp 1.0.54 ошибка:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class ru.CryptoPro.JCP.tools.SelfTester
at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source) [jcp-1.0.54.jar:36641]
at ru.CryptoPro.JCP.Sign.b.<init>(Unknown Source) [jcp-1.0.54.jar:36641]
at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source) [jcp-1.0.54.jar:36641]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_09]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_09]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_09]
at java.lang.reflect.Constructor.newInstance(Constructor.java:525) [rt.jar:1.7.0_09]
at java.lang.Class.newInstance0(Class.java:372) [rt.jar:1.7.0_09]
at java.lang.Class.newInstance(Class.java:325) [rt.jar:1.7.0_09]
at java.security.Provider$Service.newInstance(Provider.java:1238) [rt.jar:1.7.0_09]
at java.security.Signature.isSpi(Signature.java:286) [rt.jar:1.7.0_09]
at java.security.Signature.getInstance(Signature.java:231) [rt.jar:1.7.0_09]
at ru.ssksoft.mfc.frontend.services.crypto.SignServiceImpl.verifySign(SignServiceImpl.java:262) [classes:]
at ru.ssksoft.mfc.frontend.document.impl.GenericDocumentFactoryImpl.verificationDocument(GenericDocumentFactoryImpl.java:123) [classes:]
at ru.ssksoft.mfc.frontend.ui.components.CustomerRequestSignForm.checkSignBtnClick(CustomerRequestSignForm.java:116) [classes:]
at ru.ssksoft.mfc.frontend.ui.components.CustomerRequestSignForm.buttonClick(CustomerRequestSignForm.java:98) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_09]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_09]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09]
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510) [vaadin-6.8.9.jar:6.8.9]
... 40 more

При установленном JCP 1.0.53 ошибки нет. Если вызывать этот метод не из Jboss приложения (а из апплета например) - ошибки нет.
Offline asmirnov84  
#2 Оставлено : 17 апреля 2013 г. 21:01:44(UTC)
asmirnov84

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

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

Пишу в обработчике кнопки на сервере:
Код:
Security.addProvider(new ru.CryptoPro.JCP.JCP());
            KeyStore trustedRootCertStore = KeyStore.getInstance("CertStore", "JCP");
            trustedRootCertStore.load(new FileInputStream("c:\\TrustRoot"), "1".toCharArray());


На последней строке:

Caused by: java.lang.ExceptionInInitializerError
at ru.CryptoPro.JCP.Key.PrivateKeySpec.createKeyfromPassword(Unknown Source) [crypto-jcp-0.0.3.jar:]
at ru.CryptoPro.JCP.KeyStore.TrustStore.a(Unknown Source) [crypto-jcp-0.0.3.jar:]
at ru.CryptoPro.JCP.KeyStore.TrustStore.engineLoad(Unknown Source) [crypto-jcp-0.0.3.jar:]
at java.security.KeyStore.load(KeyStore.java:1214) [rt.jar:1.7.0_10]
at ru.ssksoft.mfc.frontend.services.crypto.SignServiceImpl.verifySign(SignServiceImpl.java:269) [classes:]
at ru.ssksoft.mfc.frontend.document.impl.GenericDocumentFactoryImpl.verificationDocument(GenericDocumentFactoryImpl.java:123) [classes:]
at ru.ssksoft.mfc.frontend.ui.components.CustomerRequestSignForm.checkSignBtnClick(CustomerRequestSignForm.java:116) [classes:]
at ru.ssksoft.mfc.frontend.ui.components.CustomerRequestSignForm.buttonClick(CustomerRequestSignForm.java:98) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_10]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_10]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_10]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_10]
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510) [vaadin-6.8.9.jar:6.8.9]
... 40 more
Caused by: java.lang.NullPointerException
at ru.CryptoPro.JCP.tools.BasicLogger.a(Unknown Source) [crypto-jcp-0.0.3.jar:]
at ru.CryptoPro.JCP.tools.BasicLogger.pref(Unknown Source) [crypto-jcp-0.0.3.jar:]
at ru.CryptoPro.JCP.tools.JCPLogger.pref(Unknown Source) [crypto-jcp-0.0.3.jar:]
at ru.CryptoPro.JCP.pref.JCPPref.getOID(Unknown Source) [crypto-jcp-0.0.3.jar:]
at ru.CryptoPro.JCP.params.e.run(Unknown Source) [crypto-jcp-0.0.3.jar:]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_10]
at ru.CryptoPro.JCP.params.AlgIdSpec.<clinit>(Unknown Source) [crypto-jcp-0.0.3.jar:]
... 53 more

С 1.0.53 этот же код работает...
Offline Евгений Афанасьев  
#3 Оставлено : 18 апреля 2013 г. 8:57:29(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Попробуйте задать в logging.properties:
ru.CryptoPro.JCP.tools.JCPLogger.level=INFO
ru.CryptoPro.JCP.tools.JCPLogger.handlers=java.util.logging.ConsoleHandler
Offline asmirnov84  
#4 Оставлено : 22 апреля 2013 г. 10:32:18(UTC)
asmirnov84

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

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

Автор: afev Перейти к цитате
Здравствуйте.
Попробуйте задать в logging.properties:
ru.CryptoPro.JCP.tools.JCPLogger.level=INFO
ru.CryptoPro.JCP.tools.JCPLogger.handlers=java.util.logging.ConsoleHandler


Не подскажете как это сделать? При изменении logging.properties в jvm/jdk1.7.0_09/jre/lib Jboss ничего нового в консоли не выводит.
Offline Евгений Афанасьев  
#5 Оставлено : 22 апреля 2013 г. 12:30:08(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Нужно найти конфиг, который использует jboss.
Offline pls  
#6 Оставлено : 26 апреля 2013 г. 11:37:37(UTC)
pls

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.10.2011(UTC)
Сообщений: 74
Откуда: Moscow

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
У меня очень похожая проблема при переходе на 1.0.54 c 1.0.52. Возникает следующая ошибка при создании подписи:
Цитата:

Caused by: java.lang.ClassNotFoundException: org.bouncycastle.cms.CMSException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)


Подпись происходит внутри томката и несмотря на то, что все требуемые либы bouncycastle лежат в webbapps/myapp/WEB-INF/lib возникает ошибка.
Проблема оказалась в том, что в 1.0.54 в jre/ext/lib добавилась библиотека CAdES.jar(зачем?). Ранее она шла отдельно от jcp и (в нашем приложении) цеплялась как зависимость(кстати будет когда-нибудь maven артифакт для нее? (сейчас делаем его сами)). Оказалось что в classpath'е 2 библиотеки CAdES.jar: 1. в /jre/ext/lib(пришла с патчем jvm) 2. в /WEB-INF/lib была ранее в приложении. При подгрузке класса CAdESSignature подгружается и CMSException. Ошибка в том, что класс CAdESSignature будет теперь подгружен не класслоадером веб-приложения, а ExtClassLoader и он в свою очередь инициирует подгрузку CMSException, которого в jre/ext/lib нет.
Если переместить CAdES.jar из /jre/ext/lib в WEB-INF/lib (предварительно убив старую версию либы), то все работает. (либо наоборот - можно убить CAdES.jar в /jre/ext/lib а старую версию оставить).

Вопрос к специалистам криптопро:
1. корретно ли будет работать jcp если я перенесу CAdES.jar из /jre/ext/lib в WEB-INF/lib, или меня ожидают другие сюрпризы и лучше подождать новой версии? Предложите вариант того как мне корретно перейти на новую версию jcp.
2. будет ли в след релизах CAdES.jar находиться в jre/ext/lib и не ожидает ли нас подтягивание туда же библиотек bouncycastle?
PS еще было бы интересно узнать ответы на вопросы в основном тексте: про мавен например.

Отредактировано пользователем 26 апреля 2013 г. 11:39:23(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#7 Оставлено : 26 апреля 2013 г. 13:37:30(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
1. cades.jar лежит в общем дистрибутиве и по умолчанию устанавливается в lib/ext, аналогично JCPxml. Вы можете удалить cades.jar из lib/ext и использовать его в WEB-INF/lib
2. cades.jar зависит от bouncycastle и зависимости будут в любом случае, но постараемся придумать, как упростить их использование.
3. на счет maven артефакта - обсудим и сообщим.
Offline pls  
#8 Оставлено : 26 апреля 2013 г. 16:17:17(UTC)
pls

Статус: Активный участник

Группы: Участники
Зарегистрирован: 04.10.2011(UTC)
Сообщений: 74
Откуда: Moscow

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 1 раз в 1 постах
maven по крайней мере даст возможность всегда знать на какие либы использует cades.jar - управление этим артефактом упростит.
Имхо класть библиотеку в директорию расширений, когда она не может работать без сторонних библиотек(поставка которых идет на уровне приложения) - не лучшее решение. Обновляя JCP я ожидаю обновления криптопровайдерсих фичей(ускорение работы/фикс багов и пр), и уж точно не ожидаю, что то "как" я использую криптопровайдер тоже будет обновлено. Таким образом мы уже не можем отдать обновление версии криптопровайдера (по сути обновление уровня платформы) на откуп админам, - поскольку всегда должны держать нос поветру и знать, что новая версия не влючила артефактов находящийхся в classpath приложения.
Offline test.user  
#9 Оставлено : 17 апреля 2022 г. 21:15:00(UTC)
test.user

Статус: Активный участник

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

Сказал(а) «Спасибо»: 11 раз
Автор: Евгений Афанасьев Перейти к цитате
Здравствуйте.
1. cades.jar лежит в общем дистрибутиве и по умолчанию устанавливается в lib/ext, аналогично JCPxml. Вы можете удалить cades.jar из lib/ext и использовать его в WEB-INF/lib
2. cades.jar зависит от bouncycastle и зависимости будут в любом случае, но постараемся придумать, как упростить их использование.
3. на счет maven артефакта - обсудим и сообщим.


Здравствуйте, подскажите по похожей проблеме, добавил CAdES.jar вручную для дешифрования файла, появляется ошибка
Цитата:
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.cms.CMSException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_281]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_281]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_281]


Библиотеку копировал в jre/ext/lib. Соответственно bouncyCastle также подгружается при инициализации приложения из зависимостей гредла.
Как решить эту ситуацию, что cades не видит bouncyCastle?
Offline Евгений Афанасьев  
#10 Оставлено : 17 апреля 2022 г. 22:35:54(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте. Проверьте версию bc, требуемая версия bc находится в дистрибутиве jcp в папке dependencies.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.