Статус: Новичок
Группы: Участники
Зарегистрирован: 08.07.2019(UTC) Сообщений: 9  Откуда: Москва Сказал(а) «Спасибо»: 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 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 24.04.2018(UTC) Сообщений: 24  Сказал(а) «Спасибо»: 2 раз Поблагодарили: 9 раз в 6 постах
|
Здравствуйте! Для записи контейнера на Рутокен нужно дополнительно с alias передавать пароль через разделитель "::::" . То есть выглядеть код будет примерно так: Код:
String PASSWORD_PREFIX = "::::";
keyStore.setKeyEntry(containerName + PASSWORD_PREFIX + password, privateKey, password.toCharArray(), new Certificate[]{cert});
Сделано это для того, чтобы параллельно можно было поменять пароль на считыватель (однако именно для Рутокена этот функционал смены пароля не работает - это используется для других токенов).
|
 1 пользователь поблагодарил Elvira Borodina за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.07.2019(UTC) Сообщений: 9  Откуда: Москва Сказал(а) «Спасибо»: 3 раз
|
Благодарю! Всё заработало!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close