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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vovanezha  
#1 Оставлено : 8 декабря 2025 г. 12:29:16(UTC)
vovanezha

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

Группы: Участники
Зарегистрирован: 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");
    }
}



Подскажите пожалуйста в чём может быть проблема?
Offline Евгений Афанасьев  
#2 Оставлено : 8 декабря 2025 г. 13:17:58(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 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
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
vovanezha оставлено 09.12.2025(UTC)
Offline vovanezha  
#3 Оставлено : 9 декабря 2025 г. 11:35:23(UTC)
vovanezha

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

Группы: Участники
Зарегистрирован: 31.10.2025(UTC)
Сообщений: 3

Сказал(а) «Спасибо»: 2 раз
Да вы правы, неправильно собирал проект. Сейчас работает, спасибо
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.