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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline alexeyAlexey  
#1 Оставлено : 28 сентября 2022 г. 13:22:55(UTC)
alexeyAlexey

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

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

Использую этот код для авторизации с помощью прикрепленной подписью


String data = "Test data";//получение кода для авторизации
boolean detached = false;
String alias = "te-";
String passString = "5X";
// false - прикреплённая(для получения токена авторизации) подпись
// true - откреплённая(для подписания документов) подпись
//Формирование подписи
Security.addProvider(new JCP());
KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME, JCP.PROVIDER_NAME);//инициализация хранилища ключей
keyStore.load(null, null);
List<X509CertificateHolder> chain = new ArrayList<>();

List<Certificate> certs = Arrays.asList(keyStore.getCertificateChain(alias));
certs.forEach(cert -> {
try {
chain.add(new X509CertificateHolder(cert.getEncoded()));
} catch (IOException | CertificateEncodingException e) {
System.out.println("Error while building certificate chain" + e);
}
});
PrivateKey privateKey = (PrivateKey) (keyStore.getKey(alias, passString.toCharArray()));
ByteArrayOutputStream out = new ByteArrayOutputStream();
CAdESSignature signature = new CAdESSignature(detached);
signature.setCertificateStore(new CollectionStore(chain));
final Hashtable table = new Hashtable();
Attribute attr = new Attribute(CMSAttributes.signingTime,
new DERSet(new Time(new Date()))); // устанавливаем время подписи
table.put(attr.getAttrType(), attr);
AttributeTable attrTable = new AttributeTable(table);
//Добавление подписанта. Алгоритмы могут отличаться в зависимости от требований
signature.addSigner(
JCP.PROVIDER_NAME,
JCP.GOST_DIGEST_OID,
JCP.GOST_EL_DH_OID,
privateKey,
certs,
CAdESType.CAdES_BES,
null,
false,
attrTable,
null);
signature.open(out);
signature.update(data.getBytes(StandardCharsets.UTF_8));
signature.close();
byte[] signedCode = out.toByteArray();

System.out.println(signedCode);



Получаю ошибку



Exception in thread "main" java.lang.NoClassDefFoundError: ru/CryptoPro/Install/SecurityProperties
at ru.CryptoPro.JCP.Util.PaneDefaultProvider.readProviderIndex(Unknown Source)
at ru.CryptoPro.JCP.Util.PaneDefaultProvider.access$000(Unknown Source)
at ru.CryptoPro.JCP.Util.PaneDefaultProvider$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at ru.CryptoPro.JCP.Util.PaneDefaultProvider.getDefaultProviderIndexLoad(Unknown Source)
at ru.CryptoPro.JCP.Util.PaneDefaultProvider.getDefaultProviderIndexCached(Unknown Source)
at ru.CryptoPro.JCP.tools.SelfTester.<init>(Unknown Source)
at ru.CryptoPro.JCP.tools.SelfTester.<clinit>(Unknown Source)
at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPKeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(KeyStore.java:1445)
at SignTest.main(SignTest.java:35)
Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.Install.SecurityProperties
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 12 more



Код взять с официальной документации TRUE API
В чем может быть проблема? Гугл ничем помочь не может(

Отредактировано пользователем 3 октября 2022 г. 17:38:14(UTC)  | Причина: Не указана

Offline alexeyAlexey  
#2 Оставлено : 3 октября 2022 г. 17:37:55(UTC)
alexeyAlexey

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

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

С тем, что выше разобрался, теперь новые приключения

Вот такая ошибка лезет

java.security.InvalidKeyException: Используемый открытый ключ не является доверенным
at ru.CryptoPro.JCP.Key.PublicKeySpec.verifySignature(Unknown Source) ~[JCP.jar:41789]
at ru.CryptoPro.JCP.Sign.cl_0.engineVerify(Unknown Source) [JCP.jar:41789]
at ru.CryptoPro.JCP.Sign.cl_0.engineVerify(Unknown Source) [JCP.jar:41789]
at java.security.Signature.verify(Signature.java:771) [na:1.8.0_261]
at ru.CryptoPro.reprov.x509.X509CertImpl.verify(Unknown Source) [JCPRevTools.jar:41789]
at ru.CryptoPro.reprov.certpath.ForwardBuilder.a(Unknown Source) [JCPRevCheck.jar:41789]
Offline Евгений Афанасьев  
#3 Оставлено : 3 октября 2022 г. 20:29:17(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Здравствуйте.
Можете привести весь стэк ошибки?
Offline alexeyAlexey  
#4 Оставлено : 3 октября 2022 г. 21:08:02(UTC)
alexeyAlexey

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

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

В пятницу вечером все заработало, строку подписал, а сегодня такая ошибка полезла

stack.txt (28kb) загружен 2 раз(а).
Offline Евгений Афанасьев  
#5 Оставлено : 3 октября 2022 г. 21:40:24(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Можете собрать лог, как тут описано https://support.cryptopr...nlirovnija-kriptopro-jcp ?
Offline alexeyAlexey  
#6 Оставлено : 3 октября 2022 г. 21:44:05(UTC)
alexeyAlexey

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

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

Автор: Евгений Афанасьев Перейти к цитате
Можете собрать лог, как тут описано https://support.cryptopr...nlirovnija-kriptopro-jcp ?


хорошо, завтра с утра попробую собрать лог
Offline Евгений Афанасьев  
#7 Оставлено : 3 октября 2022 г. 21:45:24(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Спасибо!
Offline alexeyAlexey  
#8 Оставлено : 4 октября 2022 г. 10:07:59(UTC)
alexeyAlexey

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

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

Доброе утро!
Снял логи по инструкции
stack 2.txt (41kb) загружен 4 раз(а).
Offline Евгений Афанасьев  
#9 Оставлено : 4 октября 2022 г. 15:02:41(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 704 раз в 665 постах
Уровень логирования, видимо, остался прежним, логов больше не стало. ConsoleHandler.level с уровнем ALL?
Offline alexeyAlexey  
#10 Оставлено : 4 октября 2022 г. 15:18:34(UTC)
alexeyAlexey

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

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

############################################################
# Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
# Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler
# classes. These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
.level= INFO

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
#java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# Example to customize the SimpleFormatter output format
# to print one-line log message like this:
# <level>: <log message> [<date/time>]
#
# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.xyz.foo.level = SEVERE

ru.CryptoPro.JCP.tools.JCPLogger.level = ALL
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.