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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline EVoynov  
#1 Оставлено : 14 июня 2013 г. 13:24:10(UTC)
EVoynov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 20.10.2011(UTC)
Сообщений: 45
Откуда: Moscow

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

Механизм формирования данных немного отличается на клиенте и на сервере.

Код:

//На клиенте: 
var oSignedData = createObject("CAdESCOM.CadesSignedData");
oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
oSignedData.Content = base64Text;

//На сервере:
message = Base64.decode(base64Text);
CAdESSignature cadesSignature = new CAdESSignature(signature, message, null);


Т.е. на клиенте мы кое как готовим строку в Base64, а дальше уже не участвуем в переводе ее в массив байт, а на сервере эту часть мы должны взять на себя и делаем это неправильно.

Предполагаю, что причина в том, что строку мы формируем как Base64('текст 1')+Base64('текст 2'), а стандартный вызов Base64.decode() делает не тоже самое, что делается на клиенте.

Выяснилось это, получив неравенство: Base64('текст 1')+Base64('текст 2') != Base64('текст 1'+'текст 2')
Для примера:
Цитата:
'текст 1' = "Пояснительная записка"
'текст 2' = "ВЕВ проверка ЭЦП № 2"
Base64('текст 1')+Base64('текст 2') = 0J/QvtGP0YHQvdC40YLQtdC70YzQvdCw0Y8g0LfQsNC/0LjRgdC60LA=0JLQldCSINC/0YDQvtCy0LXRgNC60LAg0K3QptCfIOKEliAy
Base64('текст 1'+'текст 2') = 0J/QvtGP0YHQvdC40YLQtdC70YzQvdCw0Y8g0LfQsNC/0LjRgdC60LDQktCV0JIg0L/RgNC+0LLQtdGA0LrQsCDQrdCm0J8g4oSWIDI=


При этом выяснил, что есть online-декодеры, которые умеют корректно работать с обоими вариантами, а есть которые нет, т.е. вполне может быть что мы пользуемся неправильной реализацией класса Base64 (прилагаю в аттаче класс, который используется).

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