Статус: Новичок
Группы: Участники
Зарегистрирован: 31.10.2025(UTC) Сообщений: 3
Сказал(а) «Спасибо»: 2 раз
|
Добрый день. Пытаюсь использовать Java CSP для генерации пары ключей и создания подписи. У меня тестовая лицензия, библиотеку устанавливаю в докере, в локальный maven репозиторий Версия Java CSP: java-csp-5.0.48378-A-005ada96 Архив скачан по ссылке: https://cryptopro.ru/sit...5.0.48378-A-005ada96.zipПри попытке создать инстанс классов KeyPairGenerator и Signature получаю ошибку о том, что алгоритм не реализован: Код:java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: GOST3410_2012_256, provider: JCSP, class: ru.CryptoPro.JCSP.Key.JCSPGostKeyPairGenerator_2012_256)
at java.base/java.security.Provider$Service.newInstance(Unknown Source)
at java.base/sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.base/sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.base/java.security.KeyPairGenerator.getInstance(Unknown Source)
at JCSP.ECDSA.ECDSASignVerifyExample.generateAndPrintKeyPair(ECDSASignVerifyExample.java:149)
at JCSP.ECDSA.ECDSASignVerifyExample.main(ECDSASignVerifyExample.java:99)
Caused by: ru.CryptoPro.JCP.tools.SelfTesterException: [main] :: [ru.CryptoPro.JCSP.tools.SelfTester_JavaCSP] :: null
at ru.CryptoPro.JCP.tools.SelfTesterJar.checkClassInternal(Unknown Source)
at ru.CryptoPro.JCSP.tools.SelfTester_JavaCSP.checkClass(Unknown Source)
at ru.CryptoPro.JCSP.Starter.checkInternal(Unknown Source)
at ru.CryptoPro.JCSP.Starter.check(Unknown Source)
at ru.CryptoPro.JCSP.Key.GostKeyPairGenerator.<init>(Unknown Source)
at ru.CryptoPro.JCSP.Key.JCSPGostKeyPairGenerator_2012_256.<init>(Unknown Source)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.base/java.security.Provider$Service.newInstanceOf(Unknown Source)
at java.base/java.security.Provider$Service.newInstanceUtil(Unknown Source)
... 6 more
Caused by: ru.CryptoPro.JCP.tools.SelfTesterException
at ru.CryptoPro.JCP.tools.TestVerifyClassJar.run(Unknown Source)
at ru.CryptoPro.JCP.tools.SelfTesterJar.runTest(Unknown Source)
at ru.CryptoPro.JCP.tools.SelfTesterBase.runTest(Unknown Source)
at ru.CryptoPro.JCP.tools.SelfTesterJar.checkOne(Unknown Source)
... 19 more
Caused by: java.security.PrivilegedActionException: java.io.IOException
at java.base/java.security.AccessController.doPrivileged(Unknown Source)
... 23 more
Caused by: java.io.IOException
at ru.CryptoPro.JCP.tools.JarChecker.checkURLSign(Unknown Source)
at ru.CryptoPro.JCP.tools.cl_28.run(Unknown Source)
... 24 more
Caused by: java.io.IOException: Digest of Jar file content is absent or invalid.Manifest file is corrupted
at ru.CryptoPro.JCP.tools.JarChecker.b(Unknown Source)
at ru.CryptoPro.JCP.tools.JarChecker.c(Unknown Source)
at ru.CryptoPro.JCP.tools.JarChecker.checkJARSign(Unknown Source)
... 26 more
Пример моего кода: Код:
import ru.CryptoPro.JCP.JCP;
import ru.CryptoPro.JCP.Util.JCPInit;
import ru.CryptoPro.JCSP.JCSP;
...
Security.addProvider(new JCSP());
JCPInit.initProviders(true);
...
String[] keyGenAlgos = {
"GOST3410_2012_256",
"GOST3410_2012_512",
"GOST3410DH_2012_256",
"GOST3410DH_2012_512",
"GOST3410DHEL",
"GOST3410DHELEPH",
"GOST3410DHEPH_2012_256",
"GOST3410DHEPH_2012_512",
"GOST3410EL",
"GOST3410ELEPH",
"GOST3410EPH_2012_256",
"GOST3410EPH_2012_512",
"EC",
"RSA",
};
for (String algo : keyGenAlgos) {
try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algo, JCSP.PROVIDER_NAME);
System.out.println("keyGen with " + algo + ": " + keyGen);
} catch (Throwable t) {
// t.printStackTrace();
System.out.println("keyGen with " + algo + " failed");
}
}
Что интересно, ошибка есть только на классах KeyPairGenerator и Signature. Если например создать MessageDigist или KeyFactory, ошибок нет: Код:
String[] keyFactoryAlgos = {
"GOST3410_2012_256",
"GOST3410_2012_512",
"GOST3410DH_2012_256",
"GOST3410DH_2012_512",
"GOST3410DHEL",
"GOST3410EL",
};
for (String algo : keyFactoryAlgos) {
try {
KeyFactory keyFactory = KeyFactory.getInstance(algo, JCSP.PROVIDER_NAME);
System.out.println("keyFactory with " + algo + ": " + keyFactory);
} catch (Throwable t) {
// t.printStackTrace();
System.out.println("keyFactory with " + algo + " failed");
}
}
Подскажите пожалуйста в чём может быть проблема?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,073  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 742 раз в 699 постах
|
Здравствуйте. Как будто jar файл поврежден. Скопирован верно? Какая JVM используется? На свой машине можете проверить в папке с дистрибутивом командами вроде Код:
jdk11+/bin/java -cp * ru.CryptoPro.JCP.tools.JarChecker -verify -in JCSP.jar
jdk11+/bin/java -cp * ru.CryptoPro.JCP.tools.JarChecker -verify -in JCP.jar
jdk11+/bin/java -cp * JCSP.ECDSA.ECDSASignVerifyExample
|
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 31.10.2025(UTC) Сообщений: 3
Сказал(а) «Спасибо»: 2 раз
|
Да вы правы, неправильно собирал проект. Сейчас работает, спасибо
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close