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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Руслан Хасанов  
#1 Оставлено : 19 сентября 2021 г. 10:35:01(UTC)
Руслан Хасанов

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2021(UTC)
Сообщений: 16
Российская Федерация

Доброго времени суток.
Пытаюсь создать подпись следующим образом:

List<X509Certificate> certChain = new ArrayList<X509Certificate>();
Certificate cert = CryptoUtils.getCertFromStringBase64(jcpConfig.getCertB64());
certChain.add((X509Certificate) cert);

if (jcpConfig.getIssuerCertB64() != null && !jcpConfig.getIssuerCertB64().equalsIgnoreCase("")) {
Certificate issuerCert = CryptoUtils.getCertFromStringBase64(jcpConfig.getIssuerCertB64());
certChain.add((X509Certificate) issuerCert);
}

PrivateKey key = null;
KeyStore keyStore = null;
try {
keyStore = KeyStore.getInstance("FloppyStore");
keyStore.load(null, null);

key = (PrivateKey) keyStore.getKey("jcp3cont", "123".toCharArray());
} catch (Exception e) {
e.printStackTrace();
}

byte[] cms;
try {
CAdESSignature cadesSign = new CAdESSignature(true);
cadesSign.addSigner(JCP.PROVIDER_NAME, JCP.GOST_DIGEST_2012_256_OID, JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
key, certChain, CAdESType.CAdES_BES, null, false);

ByteArrayOutputStream signatureStream = new ByteArrayOutputStream();
cadesSign.open(signatureStream);
cadesSign.update(data);
cadesSign.close();
signatureStream.close();
cms = signatureStream.toByteArray();


При выполнении cadesSign.addSigner() получаю ошибку:

at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NoClassDefFoundError: ru/CryptoPro/reprov/AndroidExtKeyUsageCertPathChecker
at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source)
at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source)
at ru.CryptoPro.CAdES.cl_1.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.cl_1.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.cl_1.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.cl_1.addSigner(Unknown Source)
at ru.it.lecm.jcpsigning.beans.JCPSigningServiceImpl.signByte2(JCPSigningServiceImpl.java:154)
at ru.it.lecm.jcpsigning.beans.JCPSigningServiceImpl.doSmth(JCPSigningServiceImpl.java:178)
at ru.blogic.lecm.lkuzedo.scripts.ExtractContentMetadata.execute(ExtractContentMetadata.java:84)
at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:527)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:450)
... 37 more
Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.reprov.AndroidExtKeyUsageCertPathChecker
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
... 48 more

С чем может быть связана данная ошибка? И что это за класс AndroidExtKeyUsageCertPathChecker? Про него никакой информации не нашел
Видел похожие ошибки, где фигурировало at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source), там решением была установка корневого сертификата в cacerts, этот шаг уже проделал
Offline Евгений Афанасьев  
#2 Оставлено : 19 сентября 2021 г. 20:49:21(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Библиотека JCPRevCheck подключена к проекту?
Offline Руслан Хасанов  
#3 Оставлено : 19 сентября 2021 г. 20:57:15(UTC)
Руслан Хасанов

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2021(UTC)
Сообщений: 16
Российская Федерация

Автор: Евгений Афанасьев Перейти к цитате
Здравствуйте.
Библиотека JCPRevCheck подключена к проекту?


Боюсь, что нет. Подскажите, пожалуйста, как ее подключить? И откуда скачать

Отредактировано пользователем 19 сентября 2021 г. 21:03:23(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 19 сентября 2021 г. 21:12:57(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
JCPRevCheck.jar есть в составе дистрибутива.
Offline Руслан Хасанов  
#5 Оставлено : 19 сентября 2021 г. 21:56:12(UTC)
Руслан Хасанов

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2021(UTC)
Сообщений: 16
Российская Федерация

Автор: Евгений Афанасьев Перейти к цитате
JCPRevCheck.jar есть в составе дистрибутива.


Данная ошибка ушла, спасибо.
Однако появилась новая:

Caused by: Error building certification path for the target, sn: 120058c316c3051a78ae234fce00010058c316, subject: CN=jcp4, issuer: CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, EMAILADDRESS=support@cryptopro.ru : java.security.NoSuchProviderException: no such provider: RevCheck; error codes: [33] 'PKIX failure: invalid parameters of certificate',
at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source)
at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source)
... 46 more

Вызов
Security.addProvider(new RevCheck());
приводит к следующей ошибке:

Caused by: java.lang.NoSuchFieldError: PRODUCT_VERSION
at ru.CryptoPro.reprov.RevCheck.<init>(Unknown Source)

Отредактировано пользователем 19 сентября 2021 г. 21:59:58(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#6 Оставлено : 19 сентября 2021 г. 23:52:27(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Какой дистрибутив jcp используется? Java 8 или 10+?
Offline Руслан Хасанов  
#7 Оставлено : 20 сентября 2021 г. 5:37:59(UTC)
Руслан Хасанов

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2021(UTC)
Сообщений: 16
Российская Федерация

Используется jcp-2.0.40035 для java11

C вышеуказанной ошибкой удалось справиться, добавил в проект версию JCP.jar из дистрибутива
теперь получаю ошибку при попытке достать приватный ключ из хранилища:

java.security.ProviderException: Ошибка при проверке лицензии
at ru.CryptoPro.JCP.KeyStore.cl_4.m(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.cl_4.a(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.ContainerStore.a(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.ContainerStore.engineGetKey(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPKeyStore.engineGetKey(Unknown Source)
at java.base/java.security.KeyStore.getKey(KeyStore.java:1057)

о какой лицензии идет речь?
до этого использовался JCP.jar версии 5.0.39267, там ключ доставался без этой ошибки

Отредактировано пользователем 20 сентября 2021 г. 7:42:35(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#8 Оставлено : 20 сентября 2021 г. 10:08:15(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Для java 10+ имеется отдельный дистрибутив - jcp-A. См. https://www.cryptopro.ru.../jcp/jcp-2.0.41940-A.zip и правила пользования в папке Doc, рук-во разработчика.
Offline Руслан Хасанов  
#9 Оставлено : 20 сентября 2021 г. 18:07:12(UTC)
Руслан Хасанов

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2021(UTC)
Сообщений: 16
Российская Федерация

Автор: Евгений Афанасьев Перейти к цитате
Для java 10+ имеется отдельный дистрибутив - jcp-A. См. https://www.cryptopro.ru.../jcp/jcp-2.0.41940-A.zip и правила пользования в папке Doc, рук-во разработчика.


Спасибо за консультацию. Подпись удалось сформировать

Отредактировано пользователем 20 сентября 2021 г. 18:25:13(UTC)  | Причина: Не указана

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