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

Уведомление

Icon
Error

16 Страницы«<45678>»
Опции
К последнему сообщению К первому непрочитанному
Offline ARnikev  
#51 Оставлено : 19 июня 2015 г. 9:54:08(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
При подписывании сущности, используя пример, выложенный выше, получаю ошибку:
Код:
Caused by: org.apache.xml.security.signature.XMLSignatureException: The requested algorithm urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411 does not exist. Original Message was: null
Original Exception was java.lang.NullPointerException
	at org.apache.xml.security.algorithms.SignatureAlgorithm.getSignatureAlgorithmSpi(SignatureAlgorithm.java:160)
	at org.apache.xml.security.algorithms.SignatureAlgorithm.<init>(SignatureAlgorithm.java:135)
	at org.apache.xml.security.algorithms.SignatureAlgorithm.<init>(SignatureAlgorithm.java:106)
	at org.apache.xml.security.signature.SignedInfo.<init>(SignedInfo.java:141)
	at org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:301)
	at xades4j.production.SignerBES.createSignature(SignerBES.java:309)
	... 20 more


Где он этот алгоритм не может найти?Think

upd. нашел какую-то бородатую тему тоже по этой проблеме - https://www.cryptopro.ru...aspx?g=posts&t=4136, но я использую ту же версию xmlsec-1.5.0 что и в примере для подписи xades...

Отредактировано пользователем 19 июня 2015 г. 10:20:45(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#52 Оставлено : 19 июня 2015 г. 10:33:01(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Выполняете JCPXMLDSigInit.init(); в начале? Какие-нибудь еще инициализации есть?
Offline ARnikev  
#53 Оставлено : 19 июня 2015 г. 10:48:05(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Выполняете JCPXMLDSigInit.init(); в начале? Какие-нибудь еще инициализации есть?

Код:

org.apache.xml.security.Init.init();
xmlDSigProvider = new ru.CryptoPro.JCPxml.dsig.internal.dom.XMLDSigRI();
HDImageStore.setDir(ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.path"));

KeyStore keyStore = KeyStore.getInstance(ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.type"));
keyStore.load(null, null);
privateKey = (PrivateKey) keyStore.getKey(
                    ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.alias"),
                    ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.password").toCharArray()
            );

cert = (X509Certificate) keyStore.getCertificate(ResourceBundle.getBundle("application").getString("config.cryptoPro.keyStore.alias"));


Вот все что делаю перед подписыванием...

upd. попробовал добавить еще JCPXMLDSigInit.init() в начале, та же самая ошибка...

Отредактировано пользователем 19 июня 2015 г. 11:05:55(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#54 Оставлено : 19 июня 2015 г. 11:10:44(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init();
Offline ARnikev  
#55 Оставлено : 19 июня 2015 г. 11:25:07(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Автор: afev Перейти к цитате
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init();

Да, спасибо, теперь подпись сущности заработала, но почему-то после нее подпись всего сообщения не ставится, буду разбираться.
А в чем разница между двумя этими инитами?
Offline Евгений Афанасьев  
#56 Оставлено : 19 июня 2015 г. 11:32:40(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: ARnikev Перейти к цитате
Автор: afev Перейти к цитате
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init();

Да, спасибо, теперь подпись сущности заработала, но почему-то после нее подпись всего сообщения не ставится, буду разбираться.
А в чем разница между двумя этими инитами?


JCPXMLDSigInit.init() выполняет org.apache.xml.security.Init.init(), но только передает ему конфиг с ГОСТами, находящийся в JCPxml, ведь в самом config.xml внутри xmlsec нет ГОСТ алгоритмов.

Offline ARnikev  
#57 Оставлено : 19 июня 2015 г. 11:33:52(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах
Получилось сформировать подписанное сообщение наконец-то. На портале СМЭВ (http://smev.gosuslugi.ru/portal/services-tools.jsp) проверку проходит, а вот сервис выдает следующую невнятную ошибку:
Код:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>java.util.MissingFormatArgumentException: Format specifier 's'</faultstring>
      </S:Fault>
   </S:Body>
</S:Envelope>


Сталкивался кто?
Offline ARnikev  
#58 Оставлено : 19 июня 2015 г. 11:35:23(UTC)
ARnikev

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 2 раз в 1 постах

JCPXMLDSigInit.init() выполняет org.apache.xml.security.Init.init(), но только передает ему конфиг с ГОСТами, находящийся в JCPxml, ведь в самом config.xml внутри xmlsec нет ГОСТ алгоритмов.

Понятно, спасибо. Непонятно только как у меня раньше работала подпись при старом формате СМЭВ, ведь я инициализацию делал только таким образом - org.apache.xml.security.Init.init();

Offline Inviz  
#59 Оставлено : 22 июня 2015 г. 10:40:56(UTC)
Inviz

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

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

Поблагодарили: 1 раз в 1 постах
Автор: ARnikev Перейти к цитате
Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?

Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом?


Насколько я понял при импорте сущности проверяется только подпись всего сообщения.
Результат проверки подписи сущности можно узнать только запросив статус импорта..
Offline Corzina  
#60 Оставлено : 22 июня 2015 г. 11:13:57(UTC)
Corzina

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Автор: Inviz Перейти к цитате
Автор: ARnikev Перейти к цитате
Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?

Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом?


Насколько я понял при импорте сущности проверяется только подпись всего сообщения.
Результат проверки подписи сущности можно узнать только запросив статус импорта..


Подпись всего сообщения остается без изменения, XAdES-T ставится только под сущностью FinalPayment. Поэтому Вас сразу СМЭВ и выбрасывает и платеж до ГИСГМП не доходит
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
16 Страницы«<45678>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.