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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Burilas  
#1 Оставлено : 19 апреля 2018 г. 13:50:31(UTC)
Burilas

Статус: Активный участник

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте

Установил Java 1.7 (80u 64x). Поставил JCP 2.0. Установил поддержку рутокена для JCP и CSP.
В контрольной панели рутокен отображается. Далее извлекаю приватный ключ из хранилища

Код:
KeyStore ks = KeyStore.getInstance(KEY_STORE);
ks.load(null, null);
return (PrivateKey) ks.getKey(alias, password)


Приватный ключ является объектом класса "ru.CryptoPro.JCP.Key.GostExchPrivateKey".
Пытаюсь подписать pdf

Код:
final Signature signature = Signature.getInstance(JCP.GOST_EL_SIGN_NAME, JCSP.PROVIDER_NAME);
signature.initSign(getPrivateKey("alias", "password"));


И на методе "initSign" падает с ошибкой

Код:
java.lang.ClassCastException: ru.CryptoPro.JCP.Key.GostExchPrivateKey cannot be cast to ru.CryptoPro.JCSP.Key.GostPrivateKey


Подскажите в чём проблема
Offline Евгений Афанасьев  
#2 Оставлено : 19 апреля 2018 г. 16:29:57(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Здравствуйте.
Ключ читается с помощью JCP, как ru.CryptoPro.JCP.Key.GostExchPrivateKey, а передается в Signature, загруженный из JCSP и принимающий ключ ru.CryptoPro.JCSP.Key.GostPrivateKey. Нужно KeyStore.getInstance(KEY_STORE) выполнять с указанием провайдера JCSP, или в ignature.getInstance указать провайдер JCP, а не JCSP.
Рутокен в таком виде доступен только из JCP (через модуль поддержки в JCP). В случае JCSP можно получить список поддерживаемых считывателей в KeyStore.getServices(), там должен быть и Rutoken (с другим именем), доступный с помощью CSP. При использовании JCSP модуль поддержки рутокена в JCP не нужен, т.к. JCSP работает со считывателями CSP.

Отредактировано пользователем 19 апреля 2018 г. 16:32:30(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
Burilas оставлено 20.04.2018(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.