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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Vlad_Alymov  
#1 Оставлено : 8 июля 2019 г. 12:30:50(UTC)
Vlad_Alymov

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

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

Сказал(а) «Спасибо»: 3 раз
Добрый день!

Имеется Рутокен ЭЦП 2.0, пароль стандартный - 12345678. Пытаюсь сгенерировать ключевую пару ГОСТ 2012 (512) при помощи КриптоПро JCP версии 2.0 40035 и записать её на Рутокен. Однако все попытки завершаются ошибкой "Invalid password (is null)". Ниже адаптированный код:

Код:
keyStore = KeyStore.getInstance("RutokenStore", "JCP");
// keyStorePassword - пробовал и null, и "12345678"
keyStore.load(null, keyStorePassword);

...
Код:
// containerName - 8-буквенное имя, например: OLWNAEQD
// password - "12345678"
keyStore.setKeyEntry(containerName, privateKey, (password != null) ? password.toCharArray() : null, new Certificate[] { certificate });

// так тоже не работает:
keyStore.setEntry(
	containerName,
	new JCPPrivateKeyEntry(privateKey, new Certificate[] { certificate }, true),
	new java.security.KeyStore.PasswordProtection((password != null) ? password.toCharArray() : null)
);


Причём в панели управления КриптоПро JCP создать контейнер возможно, хотя в консоли Java появляется похожий стек вызовов (java.io.IOException: Error during get file size, java.io.FileNotFoundException), но ключи при этом записываются.

Написал ради эксперимента метод копирования контейнера с HDImageStore на Рутокен - такая же ошибка при записи.

Прилагаю лог. Судя по строке ru.CryptoPro.JCP.KeyStore.Rutoken.cl_2.login(Unknown Source) проблема возникает при попытке авторизоваться на Рутокене (функция PKCS11 - C_Login)?

jcp.log (20kb) загружен 8 раз(а).
Offline Elvira Borodina  
#2 Оставлено : 8 июля 2019 г. 15:16:11(UTC)
Elvira Borodina

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

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

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 9 раз в 6 постах
Здравствуйте!
Для записи контейнера на Рутокен нужно дополнительно с alias передавать пароль через разделитель "::::" .
То есть выглядеть код будет примерно так:
Код:

String PASSWORD_PREFIX = "::::";
keyStore.setKeyEntry(containerName + PASSWORD_PREFIX + password, privateKey, password.toCharArray(), new Certificate[]{cert});


Сделано это для того, чтобы параллельно можно было поменять пароль на считыватель (однако именно для Рутокена этот функционал смены пароля не работает - это используется для других токенов).
thanks 1 пользователь поблагодарил Elvira Borodina за этот пост.
Vlad_Alymov оставлено 08.07.2019(UTC)
Offline Vlad_Alymov  
#3 Оставлено : 8 июля 2019 г. 15:22:50(UTC)
Vlad_Alymov

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

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

Сказал(а) «Спасибо»: 3 раз
Благодарю! Всё заработало!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.