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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline azatsh  
#1 Оставлено : 25 января 2013 г. 11:56:51(UTC)
azatsh

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

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

Добрый день!
Хочу использовать JCP для подписи SOAP сообщений. Я посмотрел пример на http://www.cryptopro.ru/blog/2012/07/02/podpis-soobshchenii-soap-dlya-smev-s-ispolzovaniem-kriptopro-jcp
и не могу разобраться вот с этой частью кода

KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
PrivateKey privateKey = (PrivateKey)keyStore.getKey(ALIAS, PASSWORD);

Вопрос: какой альяс надо брать? В документации написано что чтобы был альяс надо прежде вызвать метод setKeyEntry, а в нем передается приватный ключ. Но мне как раз и нужно достать приватный ключ:)
В общем, у меня есть приватный ключ в контейнере, есть файл сертификата связанный с ключом из контейнера и мне нужно в коде по сертификату получить этот приватный ключ из контейнера.
Это возможно? Или есть другие способы?
Offline Евгений Афанасьев  
#2 Оставлено : 25 января 2013 г. 12:20:37(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 693 раз в 654 постах
Здравствуйте.
1) обратитесь к документации jcp.
2) узнать алиас можно, воспользовавшись панелью JCP (вкладка "Ключи и хранилища сертификатов")
cmd: ControlPane.[bat|sh] "<JRE>"
ControlPane лежит в папке lib дистрибутива;
либо перечислением алиасов в keyStore.
Offline azatsh  
#3 Оставлено : 25 января 2013 г. 12:44:10(UTC)
azatsh

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

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

Посмотрел через панель JCP. Там вообще нет контейнера с типом HDImageStore. Я импортировал свой закрытый ключ с флешки при помощи утилит КриптоПро CSP, он сам создал контейнер, кажется в реестре.
Когда делаем
KeyStore.getInstance(JCP.HD_STORE_NAME)
то он какой контейнер найдет?
Видел в документации что после этого надо еще вызвать метод load(InputStream stream, char[] password) чтобы инициализировать контейнер. А откуда я ему InputStream возьму
Offline Евгений Афанасьев  
#4 Оставлено : 25 января 2013 г. 12:59:54(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 693 раз в 654 постах
Автор: azatsh Перейти к цитате
В документации написано что чтобы был альяс надо прежде вызвать метод setKeyEntry, а в нем передается приватный ключ.

Да, если у вас нет контейнера.

Автор: azatsh Перейти к цитате

В общем, у меня есть приватный ключ в контейнере, есть файл сертификата связанный с ключом из контейнера и мне нужно в коде по сертификату получить этот приватный ключ из контейнера.


Контейнер должен находится в папке JCP, прописанной на вкладке "Оборудование" (Hardware) (панель JCP) - не в реестре. Если он в реестре, то с помощью CSP скопируйте контейнер на диск. Получите папку вида xxxxxxxx.000, ее следует поместить в папку JCP для контейнеров.
Для изменения пути к контейнерам JCP можно выполнить HDImageStore.setDir("new_path_to_container");

Автор: azatsh Перейти к цитате

KeyStore.getInstance(JCP.HD_STORE_NAME)
то он какой контейнер найдет?


Еще нужно выполнить keystore.load(null, null) - тогда загрузятся все контейнеры из папки JCP.

Отредактировано пользователем 25 января 2013 г. 13:01:35(UTC)  | Причина: Не указана

Offline azatsh  
#5 Оставлено : 25 января 2013 г. 15:45:53(UTC)
azatsh

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

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

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