Статус: Активный участник
Группы: Участники
Зарегистрирован: 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
Где он этот алгоритм не может найти? upd. нашел какую-то бородатую тему тоже по этой проблеме - https://www.cryptopro.ru...aspx?g=posts&t=4136, но я использую ту же версию xmlsec-1.5.0 что и в примере для подписи xades... Отредактировано пользователем 19 июня 2015 г. 10:20:45(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,954 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 701 раз в 662 постах
|
Выполняете JCPXMLDSigInit.init(); в начале? Какие-нибудь еще инициализации есть? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,954 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 701 раз в 662 постах
|
Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init(); |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.10.2013(UTC) Сообщений: 56
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 1 постах
|
Автор: afev Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init(); Да, спасибо, теперь подпись сущности заработала, но почему-то после нее подпись всего сообщения не ставится, буду разбираться. А в чем разница между двумя этими инитами?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,954 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 701 раз в 662 постах
|
Автор: ARnikev Автор: afev Попробуйте заменить org.apache.xml.security.Init.init(); на JCPXMLDSigInit.init(); Да, спасибо, теперь подпись сущности заработала, но почему-то после нее подпись всего сообщения не ставится, буду разбираться. А в чем разница между двумя этими инитами? JCPXMLDSigInit.init() выполняет org.apache.xml.security.Init.init(), но только передает ему конфиг с ГОСТами, находящийся в JCPxml, ведь в самом config.xml внутри xmlsec нет ГОСТ алгоритмов. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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>
Сталкивался кто?
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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();
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.06.2015(UTC) Сообщений: 10
Поблагодарили: 1 раз в 1 постах
|
Автор: ARnikev Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?
Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом? Насколько я понял при импорте сущности проверяется только подпись всего сообщения. Результат проверки подписи сущности можно узнать только запросив статус импорта..
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.12.2012(UTC) Сообщений: 14 Откуда: Vladimir Сказал(а) «Спасибо»: 3 раз Поблагодарили: 1 раз в 1 постах
|
Автор: Inviz Автор: ARnikev Коллеги, а вы по новому стандарту XAdES-T подписываете только импортируемую сущность, а подпись сообщения целиком остается в старом виде?
Тестирую сейчас отправку сообщений на тестовом стенде, в ответ приходит "SMEV-100003: При обработке запроса произошла ошибка: Неверная ЭП сообщения" не совсем понятно ругается ли он на подпись всего сообщения или на подпись сущности? Если неверна именно подпись сущности, то он в ответ пришлет ошибку с другим кодом? Насколько я понял при импорте сущности проверяется только подпись всего сообщения. Результат проверки подписи сущности можно узнать только запросив статус импорта.. Подпись всего сообщения остается без изменения, XAdES-T ставится только под сущностью FinalPayment. Поэтому Вас сразу СМЭВ и выбрасывает и платеж до ГИСГМП не доходит
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close