sigatron Опубликовано 14 Января 2019 Жалоба Поделиться Опубликовано 14 Января 2019 Здравствуйте! Пытаюсь подписать XML документ с использованием ЭЦП с "новым" алгоритмом ГОСТ Р 34.10-2012. Использую пример, указанный в руководстве программиста: "XmlDSig - Пример создания подписи в Java". Получаю ошибку Caused by: javax.xml.crypto.dsig.XMLSignatureException: java.security.InvalidKeyException: No installed provider supports this key: ru.infotecs.crypto.gost3410.GostR341012v256PrivateKey at org.apache.jcp.xml.dsig.internal.dom.l.sign(Unknown Source) ~[jcrypto-xmldsig-2.7.2-R17.jar:1.5.6] ... 20 more Caused by: java.security.InvalidKeyException: No installed provider supports this key: ru.infotecs.crypto.gost3410.GostR341012v256PrivateKey at java.security.Signature$Delegate.chooseProvider(Signature.java:1139) ~[?:1.8.0_152] at java.security.Signature$Delegate.engineInitSign(Signature.java:1180) ~[?:1.8.0_152] at java.security.Signature.initSign(Signature.java:531) ~[?:1.8.0_152] at org.apache.jcp.xml.dsig.internal.dom.h.sign(Unknown Source) ~[jcrypto-xmldsig-2.7.2-R17.jar:1.5.6] at org.apache.jcp.xml.dsig.internal.dom.l.sign(Unknown Source) ~[jcrypto-xmldsig-2.7.2-R17.jar:1.5.6] ... 20 more Насколько понимаю, проблема в том, что в ViPNetXMLDSigProvider никак не реализован используемый алгоритм. Констант новых нет, внутри тоже все без изменений. Версия JCrypto SDK: 2.7.2-R17 Вопрос: сейчас существует какой-либо способ подписания XML через XmlDsig с использованием нового алгоритма? Если нет - планируется ли обновить библиотеку jcrypto-xmldsig-* и, если да, то как скоро? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
LPRO Опубликовано 1 Октября 2019 Жалоба Поделиться Опубликовано 1 Октября 2019 Пытался сегодня подписать XML с помощью последнего JCrypo, ничего не выходило. заглянул в недра библиотек, оказалось, что умеет подписывать только по 34.10 2001, но не 34.10 2012 public KeyValue newKeyValue(PublicKey publicKey) throws KeyException { String var2 = publicKey.getAlgorithm(); return (KeyValue)("GOST3410-2001".equals(var2) ? new f(publicKey) : this.a.newKeyValue(publicKey)); } Если не 34.10 2001 то перенаправляет на родительский стандартный явовский KeyInfoFactory, метод: public KeyValue newKeyValue(PublicKey key) throws KeyException { String algorithm = key.getAlgorithm(); if (algorithm.equals("DSA")) { return new DSA(key); } else if (algorithm.equals("RSA")) { return new RSA(key); } else if (algorithm.equals("EC")) { return new EC(key); } else { throw new KeyException("unsupported key algorithm: " + algorithm); } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.