Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2019(UTC) Сообщений: 21
|
Информацию по идентификаторам уточнил. Написали что нужно использовать алгоритмы: 1. GOST3411_2012_256withGOST3410_2012_256 2. CryptoProSignature_2012_256 3. NONEwithGOST3410DH_2012_256 Это идентификаторы из КриптоПро JCP. Не нашел по ним подробной информации. Не нашел информации как они соотносятся с методами CADESCOM и можно ли их реализовать методам CADESCOM, задал вопрос в ТП, жду ответа.
Принимающая сторона не принимает именно подпись, хэш сравнили с ним все в порядке. Со слов специалистов принимающей стороны подписывать нужно значение хэша в base64. В CADESCOM.RawSignature для подписи используется хэш в виде HEXстроки, это не особо проблемно потому что CAdESCOM.HashedData возвращает значение хэша в виде HEXстроки и его можно использовать для подписи (переводил хэш из HEXстроки в base64, хэш валидацию проходит) С помощью хэш2 пробовал подписывать, подпись валидацию не проходит.
Попробую инвертировать хэш, спасибо за идею
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
Автор: ыволавыд  Со слов специалистов принимающей стороны подписывать нужно значение хэша в base64.
Как интерпретировали? Может они реально кодируют так? Данные => хеш => хеш в base64 (строка) => подписание (т.е. вычисление хеша от "хеша в base64, как строки" и подписание вычисленного хеша). p.s. участвовал в "исследовании" таких ИС, когда обращались за помощью. |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
хэш сравнили на принимающей стороне и сами? если на принимающей стороне тогда наверно нет смысла инвертировать хэш, но вдруг подойдет. Вот с замечанием "подписывать нужно значение хэша в base64" наверно надо подумать... что если схема двойного хэширования такая (в принципе тоже что в сообщении выше от Андрея): Код:Хэш_HEXстрока = COMВычислитьХэшСуммуПоГОСТ_3411_2012(СтрокаДляФормированияДайджеста);
Хэш_ДвочиныеДанные = ПолучитьДвоичныеДанныеИзHexСтроки(Хэш_HEXстрока);
ХэшBase64 = Base64Строка(Хэш_ДвочиныеДанные);
Хэш2_HEXстрока = COMВычислитьХэшСуммуПоГОСТ_3411_2012(ХэшBase64);
...
oHashedData.SetHashValue(Хэш2_HEXстрока);
В общем идей немало, осталось все методично опробовать. Отредактировано пользователем 4 сентября 2019 г. 11:10:24(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2019(UTC) Сообщений: 21
|
Для создания подписи в формате RAW использовал объект CADESCOM.RawSignature, точнее его метод SignHash, на вход метода подается объект содержащий значение подписи в виде HEXстроки. Получается цепочка "данные => хэш в формате HEXстрока = > подпись в формате HEXстроки" Пробовал Цитата:вычисление хеша от "хеша в base64, как строки" , подпись валидацию не прошла
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
19 пост: Цитата: oHashedData.DataEncoding = 1; // CADESCOM_BASE64_TO_BINARY
Вы понимаете, что делаете? Если Да - то почему передаете значение в hex? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Автор: Андрей Писарев  19 пост: Цитата: oHashedData.DataEncoding = 1; // CADESCOM_BASE64_TO_BINARY
Вы понимаете, что делаете? Если Да - то почему передаете значение в hex? В принципе согласен, не стал комментировать сразу вот почему. Тут момент в том, распространяется DataEncoding только на принимаемые данные или на устанавливаемый хэш тоже, потому что дальше идет .SetHashValue вместо передачи данных для хэширования. Если DataEncoding не распространяется на SetHashValue, то эта строка тупо срабатывает вхолостую. Просветите - распространяется или нет? Отредактировано пользователем 4 сентября 2019 г. 11:58:39(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2019(UTC) Сообщений: 21
|
При использовании SetHashValue, значение DataEncoding не влияет на устанавливаемое значение хэша, оно влияет только на хэширование. Пробовал оба варианта значения DataEncoding, на значение хэша это никак не повлияло, подаю hex потому что в SetHashValue другие форматы не принимаются.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 17.08.2019(UTC) Сообщений: 21
|
Значение хэша получаю с DataEncoding = 0, хэш валидацию проходит.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,504   Сказал «Спасибо»: 554 раз Поблагодарили: 2249 раз в 1755 постах
|
Автор: two_oceans  Автор: Андрей Писарев  19 пост: Цитата: oHashedData.DataEncoding = 1; // CADESCOM_BASE64_TO_BINARY
Вы понимаете, что делаете? Если Да - то почему передаете значение в hex? В принципе согласен, не стал комментировать сразу вот почему. Тут момент в том, распространяется DataEncoding только на принимаемые данные или на устанавливаемый хэш тоже, потому что дальше идет .SetHashValue вместо передачи данных для хэширования. Если DataEncoding не распространяется на SetHashValue, то эта строка тупо срабатывает вхолостую. Просветите - распространяется или нет? SetHashValue - да, принимает hex. Не влияет... |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close