Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.08.2015(UTC) Сообщений: 33 ![Беларусь Беларусь](/forum2/Content/images/flags/BY.png) Сказал(а) «Спасибо»: 23 раз
|
Генерирую ключи с использованием JCSP провайдера. Код:
val kg = KeyPairGenerator.getInstance(JCP.GOST_EL_DEGREE_NAME, JCSP.PROVIDER_NAME)
val keypair = kg.genKeyPair()
генерирую самоподписанный сертификат Код:
def genSelfCert(pair: KeyPair, dname: String) = {
val gr: GostCertificateRequest = new GostCertificateRequest(JCSP.PROVIDER_NAME)
val enc: Array[Byte] = gr.getEncodedSelfCert(pair, dname)
val cf: CertificateFactory = CertificateFactory.getInstance("X509")
cf.generateCertificate(new ByteArrayInputStream(enc))
}
val certs: Array[Certificate] = new Array[Certificate](1)
certs(0) = genSelfCert(keypair, "CN=Container_A, O=CryptoPro, C=RU")
Пытаемся сохранить это все в хранилище (HDImageStore) Код:
val ks = KeyStore.getInstance("HDImageStore")
ks.load(null, keystorePass.toCharArray)
keystore.setKeyEntry("alias", keypair.getPrivate, keystorePass.toCharArray, certs)
keystore.store(null, keystorePass.toCharArray)
Получаю ошибку: Код:
java.security.KeyStoreException: key is not GostPrivateKey or GostExchPrivateKey
Если переключиться на JCP провайдер - то сохраняет все ок, но этот вариант не подходит, ибо для генерации ключей используем внешнюю гамму. Как быть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Потому что тип хранилища у вас HDImageStore, а это тип для JCP, реализуется этим провайдером. Чтобы сохранить ключ, сгенерированный JCSP, надо использовать тип HDIMAGE, например - это аналог HDImageStore. Выглядит это примерно так: Код:
KeyStore ks = KeyStore.getInstance(JCSP.HD_STORE_NAME);
ks.load(null, null);
keystore.setKeyEntry("alias", keypair.getPrivate, keystorePass.toCharArray, certs);
Лучше использовать константы, прописанные в классе JCSP. Об этом более подробно есть в документации к JCSP. Отредактировано пользователем 11 сентября 2015 г. 11:18:01(UTC)
| Причина: Исправил тип хранилища |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
mikla оставлено 11.09.2015(UTC)
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.08.2015(UTC) Сообщений: 33 ![Беларусь Беларусь](/forum2/Content/images/flags/BY.png) Сказал(а) «Спасибо»: 23 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Потому что тип хранилища у вас HDImageStore, а это тип для JCP, реализуется этим провайдером. Чтобы сохранить ключ, сгенерированный JCSP, надо использовать тип HDIMAGE, например - это аналог HDImageStore. Выглядит это примерно так: Код:
KeyStore ks = KeyStore.getInstance(JCSP.HD_STORE_NAME);
ks.load(null, null);
keystore.setKeyEntry("alias", keypair.getPrivate, keystorePass.toCharArray, certs);
Лучше использовать константы, прописанные в классе JCSP. Об этом более подробно есть в документации к JCSP. Нет такой константы в моей версии. (jcp-2.0.37985)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Должна быть - JCSP.HD_STORE_NAME. Я исправлял константу в посте выше, т.к. записал неверно. Еще раз говорю - смотрите документацию. Там все есть. |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
mikla оставлено 11.09.2015(UTC)
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.08.2015(UTC) Сообщений: 33 ![Беларусь Беларусь](/forum2/Content/images/flags/BY.png) Сказал(а) «Спасибо»: 23 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Должна быть - JCSP.HD_STORE_NAME. Я исправлял константу в посте выше, т.к. записал неверно. Еще раз говорю - смотрите документацию. Там все есть. Я вообще ни в одной документации не могу найти упоминание этих констант. Буду крайне признателен, если укажите куда смотреть :) в моем распоряжении доки: ЖТЯИ.00087-01 90 03-02. Инструкция по использованию.pdf ЖТЯИ.00087-01 90 09. Руководство администратора безопасности.pdf ЖТЯИ.00087-01 90 09. Руководство программиста.pdf ЖТЯИ.00087-01 90 09. Руководство программиста (JTLS).pdf
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Папка Doc\ЖТЯИ.00087-01-JCSP в дистрибутиве, файл "ЖТЯИ.00087-01 90 09. Руководство программиста.pdf", например, "Работа с ключевыми носителями". |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.08.2015(UTC) Сообщений: 33 ![Беларусь Беларусь](/forum2/Content/images/flags/BY.png) Сказал(а) «Спасибо»: 23 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Папка Doc\ЖТЯИ.00087-01-JCSP в дистрибутиве, файл "ЖТЯИ.00087-01 90 09. Руководство программиста.pdf", например, "Работа с ключевыми носителями". Да, но там речь о JCP, о JCSP ни слова.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Папка Doc\ЖТЯИ.00087-01- JCSP в дистрибутиве, файл "ЖТЯИ.00087-01 90 09. Руководство программиста.pdf", например, "Работа с ключевыми носителями". Код:
KeyPairGenerator kg = KeyPairGenerator.getInstance("GOST3410EL", "JCSP");
KeyPairGenerator kg = KeyPairGenerator.getInstance(JCP.GOST_EL_DEGREE_NAME,
JCSP.PROVIDER_NAME);
Код:
Таким образом, определение типа используемого ключевого носителя осуществляется
одним из следующих способов:
KeyStore ks = KeyStore.getInstance("HDIMAGE", "JCSP");
KeyStore ks = KeyStore.getInstance("REGISTRY", "JCSP");
Здесь разве нет упоминания JCSP? Что мешает нажать Ctrl + Space после ввода "JCSP.". Отредактировано пользователем 11 сентября 2015 г. 15:34:06(UTC)
| Причина: Не указана |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
mikla оставлено 11.09.2015(UTC)
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 27.08.2015(UTC) Сообщений: 33 ![Беларусь Беларусь](/forum2/Content/images/flags/BY.png) Сказал(а) «Спасибо»: 23 раз
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Папка Doc\ЖТЯИ.00087-01- JCSP в дистрибутиве, файл "ЖТЯИ.00087-01 90 09. Руководство программиста.pdf", например, "Работа с ключевыми носителями". Код:
KeyPairGenerator kg = KeyPairGenerator.getInstance("GOST3410EL", "JCSP");
KeyPairGenerator kg = KeyPairGenerator.getInstance(JCP.GOST_EL_DEGREE_NAME,
JCSP.PROVIDER_NAME);
Код:
Таким образом, определение типа используемого ключевого носителя осуществляется
одним из следующих способов:
KeyStore ks = KeyStore.getInstance("HDIMAGE", "JCSP");
KeyStore ks = KeyStore.getInstance("REGISTRY", "JCSP");
Здесь разве нет упоминания JCSP? Что мешает нажать Ctrl + Space после ввода "JCSP.". Код:
no such algorithm: HDIMAGE for provider JCSP
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Крипто-Про CSP установлен? Если у вас Windows, то используйте "REGISTRY" (JCSP.REG_STORE_NAME), т.к. в windows нет HDIMAGE. P.S. Если запустите панель JCP, на закладке "Алгоритмы" выберете провайдер по умолчанию "Java CSP" и перезапустите панель, то потом увидите на закладке "Хранилища ключей и сертификатов" список имеющихся типов. Об этом тоже есть в документации, в руководстве администратора. Отредактировано пользователем 11 сентября 2015 г. 15:44:46(UTC)
| Причина: Не указана |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
mikla оставлено 22.03.2016(UTC)
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close