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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Kovalenko Nikita  
#11 Оставлено : 1 августа 2019 г. 12:54:27(UTC)
Kovalenko Nikita

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

Группы: Участники
Зарегистрирован: 05.03.2019(UTC)
Сообщений: 12
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Цитата:
А вот что приходит плагину на подпись и близко не похоже на хэш: длина 2150 символов+1(пробел) /3 (2 шестнадцатиричных символа + пробел) = 717 декодированных байт. Вспоминаем для гост-2001 длина хэша 32 байта, а 717 символов это длина самого стрима от SignedInfo. Начинаем декодировать выходит "<ds:SignedInfo xmlns:"...


Похоже, ошибка во вспомогательной функции, которую я скидывал выше:
Код:
static String buildHash3411Base64(byte[] data) {
    byte[] hash = buildHash3411(data);
    return hash != null ? Base64.encodeBase64String(data) : "";
}


Берём хэш, если он не null, возвращаем изначальные данные в base64...
Offline Kovalenko Nikita  
#12 Оставлено : 1 августа 2019 г. 13:29:04(UTC)
Kovalenko Nikita

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

Группы: Участники
Зарегистрирован: 05.03.2019(UTC)
Сообщений: 12
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Да, после этого исправления подпись заработала, спасибо большое за помощь!
Offline two_oceans  
#13 Оставлено : 2 августа 2019 г. 6:59:19(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 398 раз в 367 постах
Автор: Kovalenko Nikita Перейти к цитате
Код:
return hash != null ? Base64.encodeBase64String(data) : "";
Берём хэш, если он не null, возвращаем изначальные данные в base64...
Эх, как я этого сразу не заметил. Пожалуйста, рад что советы помогли.
Для полноты (если кто-то потом будет брать исходник) правильная строка такая:
Код:
return hash != null ? Base64.encodeBase64String(hash) : "";

Отредактировано пользователем 2 августа 2019 г. 7:01:29(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.