Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2025(UTC) Сообщений: 2
|
 pom.txt (6kb) загружен 0 раз(а).Добрый день! Помогите, пожалуйста, разрешить проблему, возникающую при работе в IntelliJ IDEA, с КриптоПро Java CSP. Конфиг системы внизу поста. Полный pom файл во вложении. Попробовал воспользоваться статьей на Хабре - "Java CSP быстрый старт". Скачал Java CSP с официального сайта КриптоПро, установил Java CSP командой Код:mvn install:install-file -Dfile=./libs/JCSP.jar -DgroupId=ru.cryptopro.jcp -DartifactId=jcp-jscp -Dversion=5.0.40363-A -Dpackaging=jar
Добавил зависимость в pom файл Код:<dependency>
<groupId>ru.cryptopro.jcp</groupId>
<artifactId>jcp-jscp</artifactId>
<version>5.0.40363-A</version>
</dependency>
Попробовал запустить простой код: Код:import java.security.Security;
import ru.CryptoPro.JCSP.JCSP;
public class Main {
public static void main(String[] args) {
System.setProperty("file.encoding", "UTF-8");
Security.addProvider(new JCSP()); // провайдер JCSP
//Security.addProvider(new RevCheck());// провайдер проверки сертификатов JCPRevCheck (revocation-провайдер)
//Security.addProvider(new CryptoProvider());// провайдер шифрования JCryptoP
}
}
И получаю ошибку Exception in thread "main" java.lang.NoClassDefFoundError: ru/CryptoPro/JCP/tools/Platform at ru.CryptoPro.JCSP.JCSP.<clinit>(Unknown Source) at Main.main(Main.java:7) Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.JCP.tools.Platform at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ... 2 moreЧто я делаю не так? Куда копать?Конфиг системы:Windows 10 Pro Maven 3.8.8 OpenJDK 22.0.1 2024-04-16 IntelliJ IDEA 2024.2.0.2 (Ultimate Edition) Build #IU-242.20224.419, built on August 19, 2024 Licensed to Trial User Subscription is active until February 25, 2025. Runtime version: 21.0.3+13-b509.4 amd64 (JCEF 122.1.9) VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Toolkit: sun.awt.windows.WToolkit Windows 10.0 GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation Memory: 2048M Cores: 16 Registry: ide.experimental.ui=true Kotlin: 242.20224.419-IJ
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,027  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 727 раз в 685 постах
|
Добрый день. Одного JCSP.jar мало, надо и другие файлы: JCP, ASN1P и т.д. Например, ru/CryptoPro/JCP/tools/Platform находится в JCP.jar, которого, видимо, нет. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.02.2025(UTC) Сообщений: 2
|
Автор: Евгений Афанасьев  Добрый день. Одного JCSP.jar мало, надо и другие файлы: JCP, ASN1P и т.д. Например, ru/CryptoPro/JCP/tools/Platform находится в JCP.jar, которого, видимо, нет. Спасибо! Да, это сработало. А есть ли какие-то примеры кода для работы с ключевыми носителями (JaCarta, eToken) и чтением сертификатов в хранилище компьютера пользователя? Хочется научиться читать данные сертификатов для определения срока действия закрытых ключей и т.п.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,027  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 727 раз в 685 постах
|
Для работы с другими хранилищами обычно требуется только передать нужное имя name хранилища в KeyStore.getInstance(name, provider). Список зарегистрированных хранилищ (например, может пригодиться при использовании токенов) можно получить с помощью кода вроде Код:
Set<Provider.Service> services = (new JCSP()).getServices();
for (Provider.Service service : services) {
if (service.getType().equalsIgnoreCase("KeyStore")) {
list.add(service.getAlgorithm());
}
}
Примеры получения ключа, сертификата есть в samples-sources, нужно искать по словам .getKey, .getEntry, .getCertificate. Для работы с системными хранилищами пользователя есть имена KeyStore: "MY", "CA", "ROOT", "AddressBook". Но у них есть свои особенности, см. пример SystemStoreExample в пакете JCSP.Container архива samples-sources.jar. С случае использования указанных имен хранилищ будут перечисляться сертификаты, хранящиеся в них, и ключи, если сертификат связан с ключом. Отредактировано пользователем 5 марта 2025 г. 9:50:24(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close