Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.08.2022(UTC) Сообщений: 49 Откуда: Спб
|
Добрый день, Есть такой код: Код:CAdESSignature cAdESSignature = new CAdESSignature();
cAdESSignature.addSigner(
JCP.PROVIDER_NAME, // signature provider // провайдер подписи
null,
null,
privateKey, // signing key // ключ подписанта
chain, // signing certificate chain // цепочка сертификатов подписанта
CAdESType.CAdES_BES,
null,
false,
null,
null,
null, // no CRL files
false
);
При запуске этого кода я получаю следующий эксепшен: Код:Caused by: sun.security.provider.certpath.PKIX$CertStoreTypeException: java.security.cert.CRLException: Empty input
at sun.security.provider.certpath.URICertStore.engineGetCRLs(URICertStore.java:430) ~[?:1.8.0_212]
at java.security.cert.CertStore.getCRLs(CertStore.java:181) ~[?:1.8.0_212]
at sun.security.provider.certpath.DistributionPointFetcher.getCRL(DistributionPointFetcher.java:261) ~[?:1.8.0_212]
at sun.security.provider.certpath.DistributionPointFetcher.getCRLs(DistributionPointFetcher.java:205) ~[?:1.8.0_212]
at sun.security.provider.certpath.DistributionPointFetcher.getCRLs(DistributionPointFetcher.java:137) ~[?:1.8.0_212]
at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:579) ~[?:1.8.0_212]
... 24 more
Caused by: java.security.cert.CRLException: Empty input
at sun.security.provider.X509Factory.engineGenerateCRL(X509Factory.java:397) ~[?:1.8.0_212]
at java.security.cert.CertificateFactory.generateCRL(CertificateFactory.java:497) ~[?:1.8.0_212]
at sun.security.provider.certpath.URICertStore.engineGetCRLs(URICertStore.java:419) ~[?:1.8.0_212]
at java.security.cert.CertStore.getCRLs(CertStore.java:181) ~[?:1.8.0_212]
at sun.security.provider.certpath.DistributionPointFetcher.getCRL(DistributionPointFetcher.java:261) ~[?:1.8.0_212]
at sun.security.provider.certpath.DistributionPointFetcher.getCRLs(DistributionPointFetcher.java:205) ~[?:1.8.0_212]
at sun.security.provider.certpath.DistributionPointFetcher.getCRLs(DistributionPointFetcher.java:137) ~[?:1.8.0_212]
at sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:579) ~[?:1.8.0_212]
... 24 more
Как эту ошибку можно исправить? Почему приходит empty input? Как я понимаю, это происходит в момент проверки сертификата. Как можно исправить эту проверку? Заранее спасибо за любые конструктивные советы
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. CRL для проверки статуса сертификата могут быть как переданы в addSigner/enhance/verify, так и загружены revocation-провайдером из сети по CRL DP сертификата. В данном случае CRL скачивается, но его тело не является корректным с точки зрения X.509 CRL. Если у вас есть сертификат подписи, попробуйте скопировать из него ссылку на CRL и скачать CRL в браузере. Если нет сертификата подписи, то попробуйте включить логирование для JCPLogger, получить в логах адрес скачиваемого CRL (до ошибки) и также скачать его в браузере. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.08.2022(UTC) Сообщений: 49 Откуда: Спб
|
По ссылке я нормально скачал этот самый crl. Проблема вот в чём. Не знаю почему, но скачиванием занимается sun.security.provider.X509Factory. Он считает, что этот crl должен завершаться 5 знаками "-", а в реальности их нет. Поэтому этот самый X509Factory возвращает пустой массив и далее, как следствие, этот самый Empty Input. Вопрос. Что делать в этом случае? Можно как-нибудь временно убрать этого криптопровайдера? Или что ещё можно сделать, чтобы crl нормально скачался? Как можно подложить скачанный сертификатор в CAdesBesSignature? С уважением, Михаил Фуркин Отредактировано пользователем 3 ноября 2023 г. 17:27:54(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Все верно, скачивает некое стандартное средство (клиент) jvm. Если формат документа (CRL) не удовлетворяет требованиям (а иногда и стандарту), то такой документ не будет обработан. Скорее всего, так и происходит - неподходящий формат CRL. Можете приложить его? Отредактировано пользователем 4 ноября 2023 г. 0:46:20(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 17.08.2022(UTC) Сообщений: 49 Откуда: Спб
|
Crl, скачанный браузером, ниже: crl.txt (16kb) загружен 2 раз(а).
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close