Статус: Новичок
Группы: Участники
Зарегистрирован: 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, а в нем передается приватный ключ. Но мне как раз и нужно достать приватный ключ:) В общем, у меня есть приватный ключ в контейнере, есть файл сертификата связанный с ключом из контейнера и мне нужно в коде по сертификату получить этот приватный ключ из контейнера. Это возможно? Или есть другие способы?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,982 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Здравствуйте. 1) обратитесь к документации jcp. 2) узнать алиас можно, воспользовавшись панелью JCP (вкладка "Ключи и хранилища сертификатов") cmd: ControlPane.[bat|sh] "<JRE>" ControlPane лежит в папке lib дистрибутива; либо перечислением алиасов в keyStore. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 7 Откуда: Россия
|
Посмотрел через панель JCP. Там вообще нет контейнера с типом HDImageStore. Я импортировал свой закрытый ключ с флешки при помощи утилит КриптоПро CSP, он сам создал контейнер, кажется в реестре. Когда делаем KeyStore.getInstance(JCP.HD_STORE_NAME) то он какой контейнер найдет? Видел в документации что после этого надо еще вызвать метод load(InputStream stream, char[] password) чтобы инициализировать контейнер. А откуда я ему InputStream возьму
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,982 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Автор: 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)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.01.2013(UTC) Сообщений: 7 Откуда: Россия
|
Все получилось, спасибо!!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close