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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline SaBo  
#1 Оставлено : 3 сентября 2012 г. 23:42:58(UTC)
SaBo

Статус: Новичок

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

Здравствуйте!

При попытке запустить тестовый пример из статьи "Подпись сообщений SOAP для СМЭВ с использованием КриптоПро JCP" вылетает следующая ошибка:


сен 03, 2012 8:32:09 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.53
сен 03, 2012 8:32:10 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Exception in thread "main" java.lang.ClassCastException: content[0] is not a valid X509Data type
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMX509Data.<init>(DOMX509Data.java:68)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMKeyInfoFactory.newX509Data(DOMKeyInfoFactory.java:88)
at wss4j.wss4j1_6_3.tests.forum.SMEVExample.main(Unknown Source)


ОС: Linux Debian 6
Java 7 Sun
JCP 1.0.53.

В чём может быть проблема?
Offline SaBo  
#2 Оставлено : 4 сентября 2012 г. 0:17:30(UTC)
SaBo

Статус: Новичок

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

Вопрос решился правильным указанием путя к хранилищу сертификата с помощью HDImageStore.setDir();
Offline lstef  
#3 Оставлено : 13 мая 2016 г. 13:55:42(UTC)
lstef

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 2 постах
Автор: SaBo Перейти к цитате
Вопрос решился правильным указанием путя к хранилищу сертификата с помощью HDImageStore.setDir();


А что нужно указать, если сертификат лежит на ruToken ?

сейчас crypto.properties выглядит следующим образом:
Код:

org.apache.ws.security.crypto.provider=wss4j.wss4j1_6_3.ws.security.components.crypto.MerlinEx
org.apache.ws.security.crypto.merlin.keystore.provider=JCP
org.apache.ws.security.crypto.merlin.keystore.type=HDImageStore
org.apache.ws.security.crypto.merlin.keystore.alias=RaUser-...........
org.apache.ws.security.crypto.merlin.keystore.password=............
Offline Евгений Афанасьев  
#4 Оставлено : 13 мая 2016 г. 14:24:15(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Вероятно,
Код:

org.apache.ws.security.crypto.merlin.keystore.type=RutokenStore
Offline lstef  
#5 Оставлено : 13 мая 2016 г. 15:28:04(UTC)
lstef

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 2 постах
К сожалению не помогло, всё равно падает там же, на строке
Код:
X509Data x509d = kif.newX509Data(Collections.singletonList(cert));

Переменная cert - пустая. Не может получить сертификат тут
Код:
X509Certificate cert = (X509Certificate) keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS);

добавил после этой строчки блок вывода:
Код:

System.out.println("cert:");
System.out.println(cert);
System.out.println("keyStore:");
System.out.println(keyStore);
System.out.println("keyStore.getDefaultType():");
System.out.println(keyStore.getDefaultType());
System.out.println("keyStore.getType():");
System.out.println(keyStore.getType());
System.out.println("keyStore.getProvider():");
System.out.println(keyStore.getProvider());
System.out.println("SpecUtility.DEFAULT_ALIAS:");
System.out.println(SpecUtility.DEFAULT_ALIAS);
System.out.println("keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS):");
System.out.println(keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS));

на выходе имею
Код:

cert:
null
keyStore:
java.security.KeyStore@50d17ec3
keyStore.getDefaultType():
jks
keyStore.getType():
HDImageStore
keyStore.getProvider():
JCP version 1.0
SpecUtility.DEFAULT_ALIAS:
RaUser-............
keyStore.getCertificate(SpecUtility.DEFAULT_ALIAS):
null
Offline Евгений Афанасьев  
#6 Оставлено : 13 мая 2016 г. 15:45:01(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Может быть, есть еще копия этого файла - crypto.properties?
Offline lstef  
#7 Оставлено : 13 мая 2016 г. 16:57:50(UTC)
lstef

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 2 постах
В проекте больше нету.
Так на ФС есть ещё несколько штук, там где распакованы изначально архивы библиотек.
Но файл из проекта точно подтягивается, т.к. Алиас он берёт из конфига в проекте
Offline Евгений Афанасьев  
#8 Оставлено : 13 мая 2016 г. 17:12:50(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Тогда странно, что видит
keyStore.getType():
HDImageStore
но не видит изменения. Попробуйте другие параметры тоже поменять.
Offline lstef  
#9 Оставлено : 13 мая 2016 г. 17:37:47(UTC)
lstef

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

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 2 постах
Он их видит, если попробовать на том же алиасе - то сразу видно, что новое значение подхватывает.

Если вывести

System.out.println(SpecUtility.DEFAULT_KEYSTORE);
System.out.println(SpecUtility.DEFAULT_STORETYPE);

То видно, что он подтягивает значение org.apache.ws.security.crypto.merlin.keystore.type=RutokenStore в DEFAULT_STORETYPE.

А в конструктор KeyStore берётся значение JCP.HD_STORE_NAME - KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
Которое определено в классе как HDImageStore.

Поменял в вызове JCP.HD_STORE_NAME на SpecUtility.DEFAULT_STORETYPE и сертификат подцепился.
Хотя пока всё равно падает на подписи - sig.sign(signContext);


Цитата:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.xml.security.utils.resolver.ResourceResolver.getInstance(Lorg/w3c/dom/Attr;Ljava/lang/String;Z)Lorg/apache/xml/security/utils/resolver/ResourceResolver;
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMURIDereferencer.dereference(DOMURIDereferencer.java:95)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference.dereference(DOMReference.java:395)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference.digest(DOMReference.java:329)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:453)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:352)
at wss4j.wss4j1_6_3.tests.forum.SMEVExample.main(SMEVExample.java:186)
Offline Евгений Афанасьев  
#10 Оставлено : 13 мая 2016 г. 17:46:00(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Автор: lstef Перейти к цитате

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.xml.security.utils.resolver.ResourceResolver.getInstance(Lorg/w3c/dom/Attr;Ljava/lang/String;Z)Lorg/apache/xml/security/utils/resolver/ResourceResolver;
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMURIDereferencer.dereference(DOMURIDereferencer.java:95)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference.dereference(DOMReference.java:395)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMReference.digest(DOMReference.java:329)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignature.digestReference(DOMXMLSignature.java:453)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:352)
at wss4j.wss4j1_6_3.tests.forum.SMEVExample.main(SMEVExample.java:186)

Возможно, версия xmlsec неподходящая.

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