Статус: Участник
Группы: Участники
Зарегистрирован: 05.12.2016(UTC) Сообщений: 13
Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день. Формирую открепленную не форматированную цифровую подпись по алгоритму GOST3411withGOST3410EL Верифицирую с помощью JCP Код:
public static boolean verify(byte[] signature, byte[] hash, X509Certificate cert, String alg) throws Exception {
Signature sig = Signature.getInstance(alg);
sig.initVerify(cert.getPublicKey());
sig.update(hash);
return sig.verify(signature);
}
Верификация проходит. Меняю алгоритм подписи и проверки на GOST3411_2012_256withGOST3410_2012_256. Верификация возвращает false. Нужно как то менять алгоритм проверки, или проблема скорее где то в другом месте?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Добрый день. Проверяете подпись длиной 64 байта? Проверка выполняется по хешу (hash)? Если да, то надо использовать алгоритм вида NONEwithGOST3410_2012_256 (JCP.RAW_...), посмотрите среди констант JCP или в документации. |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.12.2016(UTC) Сообщений: 13
Сказал(а) «Спасибо»: 6 раз Поблагодарили: 1 раз в 1 постах
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Добрый день. Проверяете подпись длиной 64 байта? Проверка выполняется по хешу (hash)? Если да, то надо использовать алгоритм вида NONEwithGOST3410_2012_256 (JCP.RAW_...), посмотрите среди констант JCP или в документации. Добрый день. Да, длина подписи 64 байта, проверяется подписанный хеш, не валидируется ни одним алгоритмом из констант JCP. Переформулирую вопрос: При переходе подписи от ГОСТ 2001, к ГОСТ 2012 валидирующий код менять не нужно (например развернуть сигнатуру, взять двойной хеш, проверять на исходных данных и другая магия)? Если при переходе к ГОСТ 2012 приведенный выше код возвращает false, значит подпись не верна? PS. JCP v2.RELEASE; JDK v1.7.80 Отредактировано пользователем 22 декабря 2016 г. 10:01:14(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: rebeled ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) При переходе подписи от ГОСТ 2001, к ГОСТ 2012 валидирующий код менять не нужно (например развернуть сигнатуру, взять двойной хеш, проверять на исходных данных и другая магия)? Если при переходе к ГОСТ 2012 приведенный выше код возвращает false, значит подпись не верна? Кроме алгоритма, передаваемого в Signature.getIstance(), ничего менять не нужно. Если все сделано правильно (верный алгоритм, данные и т.п.), то да - подпись не верна. |
|
![thanks](/forum2/Themes/soclean/heart_small.png) 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close