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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Михаил69  
#1 Оставлено : 15 января 2024 г. 15:04:32(UTC)
Михаил69

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

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

Добрый день, столкнулся со следующей проблемой. Простой вызов конструктора

import ru.CryptoPro.reprov.x509.*;
X509CRLImpl x509crl = new X509CRLImpl(x500Name, date, date2, x509CRLEntries, crlExtensions);

в случае, если x509CRLEntries не null, вызывает исключение:

java.lang.RuntimeException: Could not parse issuer
at sun.security.x509.X509CRLImpl.getIssuerX500Principal(X509CRLImpl.java:1206)
at java.security.cert.X509CRL.getIssuerX500Principal(X509CRL.java:316)
at ru.CryptoPro.reprov.x509.X509CRLImpl.<init>(Unknown Source)
at ru.CryptoPro.reprov.x509.X509CRLImpl.<init>(Unknown Source)
at ru.ak.signservice.run.SignService.issueMainCrl(SignService.java:243)
at ru.ak.signservice.run.SignService.run(SignService.java:115)
Caused by: java.security.cert.CRLException: Null CRL to encode
at ru.CryptoPro.reprov.x509.X509CRLImpl.getEncodedInternal(Unknown Source)
at ru.CryptoPro.reprov.x509.X509CRLImpl.getEncoded(Unknown Source)
at sun.security.x509.X509CRLImpl.getIssuerX500Principal(X509CRLImpl.java:1189)
... 5 more

Если заменить
import ru.CryptoPro.reprov.x509.*;
на
import sun.security.x509.*;
то всё работает корректно.

Проблема возникает из-за того, что в классе ru.CryptoPro.reprov.x509.X509CRLImpl метод getIssuerX500Principal() не переопределяется и поэтому используется метод из класса java.security.cert.X509CRL.
А в классе sun.security.x509.X509CRLImpl этот метод переопределён, и отрабатывает корректно.
Offline Евгений Афанасьев  
#2 Оставлено : 15 января 2024 г. 17:25:30(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.
Не используйте внутренние классы, надо использовать стандартные - декодировать с помощью CertificateFactory.getInstance("X.509").
Offline Михаил69  
#3 Оставлено : 15 января 2024 г. 17:48:17(UTC)
Михаил69

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

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

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