Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.08.2011(UTC) Сообщений: 96
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 2 раз в 2 постах
|
Здравствуйте!
Код выполняется под Linux, используется JCP:
String keyName = "test1"; String container = "\\\\.\\HDIMAGE\\" + keyName; JCP jcp = new JCP(); Security.addProvider(jcp); JCPInit.initProviders(true); KeyPairGenerator keyGen = KeyPairGenerator.getInstance(JCP.GOST_EL_2012_256_NAME, JCP.PROVIDER_NAME); AlgIdSpec params = new NameAlgIdSpec(AlgIdSpec.OID_PARAMS_SIG_2012_256, container); keyGen.initialize(params); KeyPair keyPair = keyGen.generateKeyPair();
Не могу найти закрытый ключ в каталоге /var/opt/cprocsp/<user> В руководстве программиста указано, что если не указывать контейнер, то создаётся эфемерный ключ. Контейнер указан, но его не найти на диске. Также прочитано про keyStore.setKeyEntry(keyName, privateKey, null, new Certificate[] {certificate}); но сертификата ещё нет, его получение занимает время, программа будет закрыта, ключ утерян. Как правильно указать, куда писать закрытый ключ, чтобы потом его найти и поместить с сертификатом в хранилище?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,032  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 729 раз в 687 постах
|
Здравствуйте. Этот код создает ключ в памяти, его надо сохранить с помощью KeyStore#setKeyEntry. Функционал, где ключ может быть создан в контейнере при генерации, поддерживается только в Java CSP. При сохранении нужен сертификат, подойдет самоподписанный, пример его создания примерно Код:
GostCertificateRequest req = new GostCertificateRequest();
req.init(JCP.GOST_DH_2012_256_NAME, false); // алгоритм ключа из KeyPairGenerator
byte[] encodedSelfSignedCert = req.getEncodedSelfCert(keyPair, "CN=" + name, null); // ключевая пара KeyPair и имя
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate selfSigedCert = cf.generateCertificate(new ByteArrayInputStream(encodedSelfSignedCert));
|
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.08.2011(UTC) Сообщений: 96
Сказал(а) «Спасибо»: 7 раз Поблагодарили: 2 раз в 2 постах
|
Спасибо!
Ещё не могли бы подсказать, как осуществляется лицензирование? Например есть программа генерации запроса, в ней в classpath включены библиотеки JCP. Сейчас, пока пробный период использования JCP не истёк, программа работает. Но, например: - период истёк - или программа запущена на компьютере без JCP, но библиотеки при сборке включены в jar. Как в этом случае распознаётся лицензия JCP? В руководстве указано, что JCP не требует установки. С JCSP, использующем CSP под Win понятно, что используется установленная версия CSP, используются библиотеки из Win и они видят, что есть лицензия. А вот в описанном выше сценарии, непонятно, как обеспечить видимость лицензии.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,032  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 729 раз в 687 постах
|
Если используется версия JCP для Java 11+, где лицензия вводится под тем пользователем, под которым работает приложение, то можно в коде написать Код:
License license = new License(null, null, “XXXXX-….”); // лицензия без имени компании
int result = license.verifyLicense(); // можно проверить
license.store();
|
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close