Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2019(UTC) Сообщений: 1 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Здравствуйте!
При попытке инициализации Digest algorithm происходит исключение, что данный алгоритм не поддерживается (unsupported algorithm). Такое же исключение происходит и при Signature Method
// Загрузка провайдера. final Provider xmlDSigProvider = new ru.CryptoPro.JCPxml.dsig.internal.dom.XMLDSigRI(); final XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM", xmlDSigProvider); //Преобразования над узлом ds:SignedInfo: final List<Transform> transformList = new ArrayList<Transform>(); final Transform transformC14N = fac.newTransform( org.apache.xml.security.transforms.Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS, (XMLStructure) null); transformList.add(transformC14N);
// Ссылка на подписываемые данные с алгоритмом хеширования ГОСТ 34.11. final Reference ref = fac.newReference("#body", fac.newDigestMethod("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256", null), transformList, null, null); // Задаём алгоритм подписи: final SignedInfo si = fac.newSignedInfo( fac.newCanonicalizationMethod(CanonicalizationMethod.EXCLUSIVE, (C14NMethodParameterSpec) null), fac.newSignatureMethod(SIGNATURE_METHOD, null), Collections.singletonList(ref));
При заходе внутрь функции, видно, что алгоритмы прописаны, но происходит исключение, как будто их нет
public DigestMethod newDigestMethod(String var1, DigestMethodParameterSpec var2) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException { if (var1 == null) { throw new NullPointerException(); } else if (var1.equals("http://www.w3.org/2000/09/xmldsig#sha1")) { return new SHA1(var2); } else if (var1.equals("http://www.w3.org/2001/04/xmlenc#sha256")) { return new SHA256(var2); } else if (var1.equals("http://www.w3.org/2001/04/xmldsig-more#sha384")) { return new SHA384(var2); } else if (var1.equals("http://www.w3.org/2001/04/xmlenc#sha512")) { return new SHA512(var2); } else if (var1.equals("http://www.w3.org/2001/04/xmldsig-more#gostr3411")) { return new GOST3411(var2); } else if (var1.equals("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411")) { return new GOST3411URN(var2); } else if (var1.equals("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256")) { return new GOST3411_2012_256_URN(var2); } else if (var1.equals("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512")) { return new GOST3411_2012_512_URN(var2); } else { throw new NoSuchAlgorithmException("unsupported algorithm"); } }
Для тестирования я создал простой экземпляр test, и даже тут не работает.
ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignatureFactory test = new ru.CryptoPro.JCPxml.dsig.internal.dom.DOMXMLSignatureFactory(); test.newDigestMethod("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256", null);
В чем может быть проблема ?
p.s Алгоритмы по стандарту ГОСТ-2001 все определяются и все ОК.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Может быть, в вашем проекте все-таки продолжает использоваться версия XMLDSigRI из jcp 1.0? |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close