Статус: Новичок
Группы: Участники
Зарегистрирован: 15.09.2011(UTC) Сообщений: 4
|
Смирнов написал:Коллеги stdprn и analitic1983! В JavaScript в IE строки UCS-2, а в других браузерах UTF-8. В данный момент мы не можем предложить универсальное решение проблемы перекодирования. Используем Firefox 3.6 Win7, добавляет именно второй байт 0. Т.е. строка var dataToSign="abc"; В подписи превращается в a0b0c0. Т.е. никакого UTF-8. Пологаю что, при передаче строкового параметра через COM объекты, все переводится к UCS-2. Так что ждем от вас метода convertUnicode (или как вы его назовете) отбрасывающего второй байт. В будущем к нему можно добавить нужные параметры конвертации, если будут необходимы.
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
analitic1983 написал:Используем Firefox 3.6 Win7, добавляет именно второй байт 0. Т.е. строка var dataToSign="abc";
В подписи превращается в a0b0c0. Т.е. никакого UTF-8. Вот это перекодирование как раз сделано специально внутри плагина для совместимости подписи с CAPICOM в IE. А вот что будет, если вместо "abc" подать непечатаемые символы, среди которых могут попадаться и нулевые, мы сейчас предсказать не можем. Причём предсказать не про наш плагин, а про браузеры. Как проверим - расскажем. |
|
|
|
|
Статус: Активный участник
Группы: Администраторы, Участники Зарегистрирован: 28.04.2010(UTC) Сообщений: 140 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) Откуда: Крипто-Про Поблагодарили: 15 раз в 14 постах
|
Смирнов написал:analitic1983 написал:Используем Firefox 3.6 Win7, добавляет именно второй байт 0. Т.е. строка var dataToSign="abc";
В подписи превращается в a0b0c0. Т.е. никакого UTF-8. Вот это перекодирование как раз сделано специально внутри плагина для совместимости подписи с CAPICOM в IE. А вот что будет, если вместо "abc" подать непечатаемые символы, среди которых могут попадаться и нулевые, мы сейчас предсказать не можем. Причём предсказать не про наш плагин, а про браузеры. Как проверим - расскажем. Посмотрели как ведут себя браузеры с бинарными данными: по-разному и плохо. Данные с сервера качали с помощью XmlHttpRequest. IE в зависимости от Content-type писал данные в xmlHttpRequest::responseText или xmlHttpRequest::responseBody. При записи в xmlHttpRequest::responseText независимо от charset (us-ascii, utf-8и т.п.) данные перекодировались в UCS-2. xmlHttpRequest::responseBody имел тип Array of Byte, для которого нет простого способа почитать из javaScript. Firefox, Chrome, Opera любые бинарные данные писали в xmlHttpRequest::responseText; пытались угадать кодировку данных; с нулевыми байтами внутри данных обходились хорошо, не обрезая строку по первому нулю. Все беды начинались при передаче данных плагину. Если внутри строки встречался 0, то плагин получал обрезанную строку, но длина строки передавалась оригинальная. Плагин ожидает получить данные в UTF-8 кодировке, поэтому что получается после перекодирования из UTF-8 в UCS-2 произвольных бинарных данных и что будет в итоге подписано - неизвестно. Для борьбы с этими проблемами будет сделано: Бинарные данные должны быть закодированы в base64, У объекта CadesSignedData появится новое свойство ContentEncoding, говорящий плагину о кодировке контента (base64, utf-8, ucs-2). Перед созданием подписи: - base64 будет декодирован в бинарные данные - utf-8 -> ucs-2 - ucs-4 -> ucs-2 При проверке прикрепленной подписи перед получение контента также нужно указать кодировку, в которой будут получены подписанные данные.
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.09.2011(UTC) Сообщений: 7
|
удивительно но с файлами проблема решена с использованием base64 для передачи с сервера ручным побитовым перекодированием (в chrome есть встроенная функция).
теперь следующий вопрос могу ли с помощью плагина создать xmldsig подпись?
собственно мне надо сделать три параметра для подписи узла xml <DigestValue> - это хэш. можно ли его выловить из свойств объекта? <SignatureValue> - это сама подпись. видиом она такой и останется. <X509Certificate> - это публичный ключ от сертификата
идея в том что бы пользователь поставил СВОЮ подпись на узел xml файла и ничего кроме браузера не использовал. естественно мы уже используем sharpei на сервере - но там ставится только серверная подпись.
заранее спасибо, ваш форум очень помогает, думаю согласятся все разработчики электронной россии)
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
На данный момент плагин поддерживает только CMS-подпись. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 22.09.2011(UTC) Сообщений: 7
|
подскажите пожалуйста какое техническое решение использовать при решении такой задачи используя браузер поставить клиентскую подпись в формате xml dsig
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
stdprn написал:подскажите пожалуйста какое техническое решение использовать при решении такой задачи используя браузер поставить клиентскую подпись в формате xml dsig Из готового можем посоветовать только COM-библиотеку MSXML5, которая входит в MS Office 2007, но её оттуда можно выдрать. Соответственно, это решение только для Windows и только для IE. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 29.09.2011(UTC) Сообщений: 6
|
Добрый день.
Скажите, пожалуйста, планируется ли добавить в плагин функционал по созданию клиентской подписи в формате xmldsig?
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
spb-stelz написал:Скажите, пожалуйста, планируется ли добавить в плагин функционал по созданию клиентской подписи в формате xmldsig? Пока планов нет. Зависит от потребности. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close