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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Сергей1986  
#1 Оставлено : 4 октября 2016 г. 15:32:58(UTC)
Сергей1986

Статус: Новичок

Группы: Участники
Зарегистрирован: 04.10.2016(UTC)
Сообщений: 2

Добрый день,

КриптоПро ЭЦП Browser plug-in пример на сайте, подпись XML

Подскажите, пожалуйста. Подпись XML получается, если в ней все теги на английском языке. У нас используется XML где теги на русском языке.
Выдается ошибка: Не удалось создать подпись из-за ошибки: Windows was unable to parse the requested XML data. (0x800705B9)

А Именно не срабатывает: Signature = yield oSignedXML.Sign(oSigner);
КАК МОЖНО ПОДПИСАТЬ ТАКОЙ XML:

<?xml version="1.0" encoding="windows-1251"?>
<Файл>
Hello, World!
</Файл>
Offline Сергей1986  
#2 Оставлено : 5 октября 2016 г. 10:12:58(UTC)
Сергей1986

Статус: Новичок

Группы: Участники
Зарегистрирован: 04.10.2016(UTC)
Сообщений: 2

Получается пописать если использовать UTF-8, но нужно именно windows-1251
Offline МарияК2603  
#3 Оставлено : 25 января 2022 г. 16:23:54(UTC)
МарияК2603

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

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

Сказал(а) «Спасибо»: 2 раз
Добрый день! Удалось ли решить проблему и как?
Offline two_oceans  
#4 Оставлено : 26 января 2022 г. 13:19:19(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 397 раз в 367 постах
Добрый день.
Недавно была подобная тема про неправильное кодирование Кириллицы в подписанном документе.

Вкратце - укажите действительную кодировку в <?xml ?> потом закодируйте в BASE64 и укажите что данные подаются в BASE64.

Тем не менее, если у Вас кириллица идет так xmlns:__="кирилица", то скорее всего плагином подписать не получится, так как в этом месте кириллица не подходит под зарубежные стандарты, а отечественных про это не сочинили.
Offline МарияК2603  
#5 Оставлено : 26 января 2022 г. 13:35:59(UTC)
МарияК2603

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

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

Сказал(а) «Спасибо»: 2 раз
Здравствуйте!
Спасибо за отклик.
То есть получается мне вместо использования CAdESCOM.SignedXML в случае если xml имеет вид, подобный:
<?xml version="1.0" encoding="windows-1251"?>
<Файл Верс="5.01"/>

Нужно использовать cadesplugin.CreateObject("CAdESCOM.CPEnvelopedData");

Верно?
Offline two_oceans  
#6 Оставлено : 28 января 2022 г. 9:52:06(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 397 раз в 367 постах
Как я понимаю, нет. Кодировка кириллицы в файле уже указана, используете все тот же SignedXML, экземпляру SignedXML установите сначала свойство ContentEncoding как BASE64_TO_BINARY (конкретное написание зависит от того из какого языка и в каком режиме - синхронном или асинхронном), потом передайте содержимое файла дополнительно закодированное в BASE64. В этом случае объект SignedXML сначала корректно раскодирует BASE64, потом определит кодировку документа windows-1251 по <?xml ... encoding="windows-1251"?>.

Без BASE64 среда (допустим браузер) может внести искажения кодировки в документ до передачи в плагин, BASE64 решает эту проблему.

Далее, корректное определение кодировки требуется для правильной работы алгоритма каноникализации, который используется в большинстве ИС. Суть в том, что каноническая форма документа может быть только в кодировке UTF-8 и ни в какой другой, следовательно плагину придется подписываемый фрагмент перевести в UTF-8, а для этого нужно знать исходную кодировку документа. Если кодировка неизвестна, то предполагается, что перекодирование не требуется. Это также косвенно дает эффект, что документы уже в UTF-8 подписываются без искажения даже когда <?xml ... ?> нет в начале документа.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (5)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.