Форум ЗАО "Сигнал-КОМ"

Текущее время: 03 июл 2020, 23:20

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 4 сообщения ] 
Автор Сообщение
СообщениеДобавлено: 11 окт 2017, 08:02 

Зарегистрирован: 22 сен 2017, 06:42
Сообщения: 7
У нас есть ПО Крипто-КОМ 3.3 с помощью которого был сформирован закрытый ключ 00000001.key.
Мы запросили тестовую версию Signal-COM JCP, проблема в том, что непонятно как работать с ключом, полученным через Крипто-КОМ.
В руководстве по этому поводу информации нет.
Код:
    // Чтение секретного ключа PKCS#8
      KeyFactory keyFac = KeyFactory.getInstance("PKCS#8", "SC");
      KeySpec spec = new PKCS8EncryptedPrivateKeySpec(IOUtils.toByteArray(new FileInputStream(resources + "00000001.key")), "".toCharArray());
      //key algorithm - ECGOST3410
      PrivateKey privateKey = keyFac.generatePrivate(spec);

    // Чтение сертификата УЦ (CA)
      //Signature: GOST3411withECGOST3410 (1.2.643.2.2.3)
      CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509", "SC");
      FileInputStream in = new FileInputStream(resources + "cert_eq_test.cer");
      X509Certificate caCertificate = (X509Certificate) certificateFactory.generateCertificate(in);
      in.close();

      //Формирование и проверка подписи ГОСТ Р34.10-2012 (256 бит)
      Signature signature = Signature.getInstance("GOST3411withECGOST3410", "SC");
      signature.initSign(privateKey);
      byte[] data = "test string".getBytes();
      signature.update(data);
      byte[] signedData = signature.sign(); //тут возникает исключение IllegalStateException: SecureRandom not set
      
В связи с чем у меня вопрос: как формировать подпись с помощью ключа от Крипто-КОМ 3.3 и можно ли?
Или обязательно нужно ключи формировать тоже средствами JCP?
Код:
java.security.SignatureException: java.lang.IllegalStateException: SecureRandom not set
	at ru.signalcom.crypto.provider.JDKSignature.engineSign(Unknown Source)
	at java.security.Signature.sign(Signature.java:578)


Последний раз редактировалось fusion 17 окт 2017, 07:29, всего редактировалось 1 раз.

Вернуться к началу
СообщениеДобавлено: 11 окт 2017, 12:27 

Зарегистрирован: 09 сен 2004, 16:06
Сообщения: 1154
Ключи, сформированные СКЗИ совместимы с JCP. В вашем сообщении содержится пример загрузки ключа. Какая ошибка выдается при формировании подписи?


Вернуться к началу
СообщениеДобавлено: 17 окт 2017, 07:27 

Зарегистрирован: 22 сен 2017, 06:42
Сообщения: 7
Возникает ошибка IllegalStateException: SecureRandom not set
обратите внимание на последнюю строчку в вышеприведённом коде.


Вернуться к началу
СообщениеДобавлено: 18 окт 2017, 06:40 

Зарегистрирован: 22 сен 2017, 06:42
Сообщения: 7
У нас jre 7, добавил строчку и заработало.
sign.setParameter(“SecureRandom”, random); // для IBM JRE 1.6


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 4 сообщения ] 

Часовой пояс: UTC+03:00


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB