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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Артём В.  
#1 Оставлено : 5 марта 2019 г. 17:47:02(UTC)
Артём В.

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

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

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

При попытке инициализации 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 все определяются и все ОК.

Offline Евгений Афанасьев  
#2 Оставлено : 6 марта 2019 г. 10:57:15(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 688 раз в 649 постах
Здравствуйте.
Может быть, в вашем проекте все-таки продолжает использоваться версия XMLDSigRI из jcp 1.0?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.