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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline gambler  
#1 Оставлено : 6 декабря 2019 г. 15:36:40(UTC)
gambler

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

Группы: Участники
Зарегистрирован: 11.09.2019(UTC)
Сообщений: 6

Здраствуйте! Взял за основу пример из samples-sources.jar (JCSP/Signature/SignByGenKeyExample.java)
При замене алгоритма JCP.GOST_EL_2012_256_NAME на JCP.GOST_EPH_DH_2012_256_NAME получаю исключение:
Код:

Dec 06, 2019 3:21:12 PM ru.CryptoPro.JCP.pref.JCPPref a
INFO: user: 502
Dec 06, 2019 3:21:14 PM ru.CryptoPro.JCSP.Starter check
INFO: Loading JCSP 5.0.40424
Dec 06, 2019 3:21:14 PM ru.CryptoPro.JCSP.Starter check
INFO: JCSP loaded.
Exception in thread "main" java.lang.IllegalArgumentException: ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException: Hash or Sign ERROR: 0x8009000d
	at ru.CryptoPro.JCSP.MSCAPI.cl_4.b(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_3.a(Unknown Source)
	at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineSign(Unknown Source)
	at java.security.Signature.sign(Signature.java:582)
	at Testik$.signAndVerify(Testik.scala:20)
	at Testik$.main(Testik.scala:39)
	at Testik.main(Testik.scala)
Caused by: ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException: Hash or Sign ERROR: 0x8009000d
	at ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException.procCode(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_4.a(Unknown Source)
	... 8 more


Почему так происходит? Как сформировать подпись с использованием эфемерного ключа?
Offline gambler  
#2 Оставлено : 6 декабря 2019 г. 16:13:57(UTC)
gambler

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

Группы: Участники
Зарегистрирован: 11.09.2019(UTC)
Сообщений: 6

Причем если сменить дефолтный криптопровайдер на JCP, то подпись проходит успешно. Для JCSP нужны какие-то дополнительные параметры?
Offline Илья Кузьмин  
#3 Оставлено : 17 июня 2020 г. 11:38:17(UTC)
Илья Кузьмин

Статус: Участник

Группы: Участники
Зарегистрирован: 17.06.2020(UTC)
Сообщений: 23

Сказал(а) «Спасибо»: 2 раз
Столкнулся с такой же проблемой, я создаю пару ключей и подписываю тестовые данные приватным ключом из этой пары

Код:

 val algorithm = JCP.GOST_EPH_DH_2012_512_NAME
        val signAlgorithm = JCP.GOST_SIGN_2012_512_NAME
        val provider = JCSP.PROVIDER_NAME
        val keyGen = KeyPairGenerator.getInstance(algorithm, provider)
        val keyPair = keyGen.generateKeyPair()
        val sn = Signature.getInstance(
                signAlgorithm, provider)
        
        sn.initSign(keyPair.private)

        sn.update(originalMessage)
        val sign = sn.sign()


И получаю исключение

Код:

java.lang.IllegalArgumentException: ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException: Hash or Sign ERROR: 0x8009000d
at ru.CryptoPro.JCSP.MSCAPI.cl_4.b(Unknown Source:30)
at ru.CryptoPro.JCSP.MSCAPI.cl_3.a(Unknown Source:12)
at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source:14)
at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineSign(Unknown Source:20)
at ru.CryptoPro.JCSP.Sign.JCSPGostElSign.engineSign(Unknown Source:0)
at java.security.Signature.sign(Signature.java:739)


То есть никаких сертификатов и никаких KeyStore я не использую для получения ключа

На стандартных средствах Java Security подписывается без проблем
Offline Евгений Афанасьев  
#4 Оставлено : 17 июня 2020 г. 14:20:20(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте. Если не ошибаюсь, в CSP нельзя подписать эфемерным ключом, а в JCP - можно.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
Илья Кузьмин оставлено 18.06.2020(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.