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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline cyrillko  
#1 Оставлено : 20 февраля 2019 г. 12:53:19(UTC)
cyrillko

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Загружаем документ подписанный ЭП по алгоритму ГОСТ Р 34.11/34.10-2012 (256 бит), хеш ГОСТ Р 34.11-2012 (256 бит), JCP 2.0.39014 получаем ошибку валидации подписи:
Can`t validate signature, because Unknown signature type requested: 1.2.643.7.1.1.2.2WITH1.2.643.7.1.1.1.1
java.lang.IllegalArgumentException: Unknown signature type requested: 1.2.643.7.1.1.2.2WITH1.2.643.7.1.1.1.1

Передавать подобным образом тип подписи рекомендовалось здесь на форуме https://www.cryptopro.ru...aspx?g=posts&t=14660

Подскажите, пожалуйста, в чем может быть проблема?
Offline Евгений Афанасьев  
#2 Оставлено : 20 февраля 2019 г. 13:27:37(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Добрый день.
Действительно используется JCP 39014?
Странно, так как в нем есть:
public static final String GOST_EL_SIGN_2012_256_OID_WITH = "1.2.643.7.1.1.2.2with1.2.643.7.1.1.1.1";
public static final String GOST_EL_SIGN_2012_512_OID_WITH = "1.2.643.7.1.1.2.3with1.2.643.7.1.1.1.2";
Приведите, пожалуйста, краткий пример использования.
Offline cyrillko  
#3 Оставлено : 20 февраля 2019 г. 13:38:38(UTC)
cyrillko

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

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

Сказал(а) «Спасибо»: 1 раз
Да версия точно такая.
Пока проверяем по коду валидации. Может быть дело в регистре WITH? 1.2.643.7.1.1.2.2WITH1.2.643.7.1.1.1.1

Отредактировано пользователем 20 февраля 2019 г. 13:39:34(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 20 февраля 2019 г. 15:29:52(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Попробовал выполнить:
Signature s = Signature.getInstance("1.2.643.7.1.1.2.2WITH1.2.643.7.1.1.1.1", "JCP");
ошибок нет (jcp 39014).
Offline test.user  
#5 Оставлено : 18 февраля 2020 г. 12:54:13(UTC)
test.user

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

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

Сказал(а) «Спасибо»: 8 раз
Подскажите, пожалуйста, получаю аналогичную ошибку "unknown signature type 1.2.643.7.1.1.6.1WITH1.2.643.7.1.1.6.1" при авторизации на госуслугах с подписью по ГОСТ-2012.
Код для формирования подписи писал сам и не уверен в его корректности:
Цитата:

CMSSign.createCMSEx(data, keys, certs, null, false,
JCP.GOST_PARAMS_EXC_2012_256_KEY_OID, JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
JCP.GOST_SIGN_2012_256_NAME, JCP.PROVIDER_NAME);


Руководствовался примером, найденным на просторах интернета. Алгоритмы подставлял вручную методом проб и ошибок. Получаю подпись без ошибок, длиной около 3300 символов.
Есть ли какой то пример кода корректной подписи по ГОСТ 2012? И как я могу настроить параметры подписи под взаимодействие с конкретным сервисом (ЕСИА, есть подобная тема тут: https://www.cryptopro.ru...mp;m=112764#post112764).
Offline Евгений Афанасьев  
#6 Оставлено : 18 февраля 2020 г. 13:13:24(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
В примере
Код:

CMSSign.createCMSEx(data, keys, certs, null, false,
JCP.GOST_PARAMS_EXC_2012_256_KEY_OID, JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
JCP.GOST_SIGN_2012_256_NAME, JCP.PROVIDER_NAME);

дважды упоминается oid алгоритма ключа обмена: JCP.GOST_PARAMS_EXC_2012_256_KEY_OID
Вряд ли так было в исходном примере. Скорее всего, вместо первого JCP.GOST_PARAMS_EXC_2012_256_KEY_OID надо поставить алгоритм хеширования: JCP.GOST_DIGEST_2012_256_OID, т.е.
Код:

CMSSign.createCMSEx(data, keys, certs, null, false,
JCP.GOST_DIGEST_2012_256_OID, JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
JCP.GOST_SIGN_2012_256_NAME, JCP.PROVIDER_NAME);

Сейчас эти примеры изменились.
И вместо JCP.GOST_PARAMS_EXC_2012_256_KEY_OID лучше ставить oid алгоритма ключа подписи, т.е. JCP.GOST_PARAMS_SIG_2012_256_KEY_OID

Отредактировано пользователем 18 февраля 2020 г. 13:14:28(UTC)  | Причина: Не указана

Offline test.user  
#7 Оставлено : 18 февраля 2020 г. 15:19:21(UTC)
test.user

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

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

Сказал(а) «Спасибо»: 8 раз
Большое спасибо, попробую!
Удалось пройти валидацию подписи с кодом из данной темы:
https://www.cryptopro.ru...aspx?g=posts&t=16526
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.