Статус: Участник
Группы: Участники
Зарегистрирован: 25.01.2022(UTC) Сообщений: 15 Откуда: Vologda Сказал(а) «Спасибо»: 2 раз
|
Добрый день! Мой веб-сервис делает следующее: 1) Получает с сервер с помощью fetch файл для подписи(файл xml, в кодировке windows-1251) Из ответа формирую file = new File([myBlob], filename), который посылаю в функцию подписания. 2) в подписании идет считывание файла через FileReader var dts, t = new Promise(function(e, t) { var r = new FileReader; r.onloadend = function() { dts = r.result.substr(r.result.indexOf(";base64,") + ";base64,".length); }, r.readAsDataURL(d) }); далее строка из dts и подписывается propset_Content(dts); при этом: CADESCOM_BASE64_TO_BINARY, CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY
Когда потом я скачиваю файл подписи, и тот самый файл xml. Проверка в инструментах КриптоПро возвращает мне ошибку.
Я предполагаю, что я где то путаюсь в кодировке, пожалуйста, натолкните на мысль где именно. СпасибО!
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Здравствуйте.
CADESCOM_BASE64_TO_BINARY выставлен перед propset_Content ?
сдампить dts, декодировать и посмотреть, отличается от исходного? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.01.2022(UTC) Сообщений: 15 Откуда: Vologda Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей * Здравствуйте.
CADESCOM_BASE64_TO_BINARY выставлен перед propset_Content ?
сдампить dts, декодировать и посмотреть, отличается от исходного? CADESCOM_BASE64_TO_BINARY выставлен до propset_Content. Если взять dts и например пойти даже на сторонний сервис https://www.base64decode.org/, то вставляя base64 строку, выставляя кодировку windows-1251, я получаю то, что мне нужно. А вот получается потом в своем сервисе генерируя архив с файлом и его подписью, у меня и не "сходиться". Файл, который подписывали, это - xml: содержимое такое же как декодированная для проверки dts, сам файл в кодировке windows-1251. Подпись - подпись, тут не изменишь. Но проверка возвращает, как я писала (0x80090006: Неправильная подпись.) и далее данные о том сертификате, которым пописывала. В моем сервисе есть ветка, где windows-1251 не нужен, там utf-8. И там такая же цепочка действий отрабатывает на "ура". И я предполагаю, что все дело в кодировке. Отредактировано пользователем 21 марта 2024 г. 10:16:55(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.01.2022(UTC) Сообщений: 15 Откуда: Vologda Сказал(а) «Спасибо»: 2 раз
|
Автор: МарияК2603 Автор: Андрей * Здравствуйте.
CADESCOM_BASE64_TO_BINARY выставлен перед propset_Content ?
сдампить dts, декодировать и посмотреть, отличается от исходного? CADESCOM_BASE64_TO_BINARY выставлен до propset_Content. Если взять dts и например пойти даже на сторонний сервис https://www.base64decode.org/, то вставляя base64 строку, выставляя кодировку windows-1251, я получаю то, что мне нужно. А вот получается потом в своем сервисе генерируя архив с файлом и его подписью, у меня и не "сходиться". Файл, который подписывали, это - xml: содержимое такое же как декодированная для проверки dts, сам файл в кодировке windows-1251. Подпись - подпись, тут не изменишь. Но проверка возвращает, как я писала (0x80090006: Неправильная подпись.) и далее данные о том сертификате, которым пописывала. В моем сервисе есть ветка, где windows-1251 не нужен, там utf-8. И там такая же цепочка действий отрабатывает на "ура". И я предполагаю, что все дело в кодировке.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Кодируете в base64 как? Как текст?... Отсюда и проблемы. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.01.2022(UTC) Сообщений: 15 Откуда: Vologda Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей * Кодируете в base64 как? Как текст?... Отсюда и проблемы. Получается, что я считываю содержимое файла через FileReader, readAsDataURL. В результате чтения base64 строка, и перед подписанием из нее удаляется ";base64,". Я так делаю согласно примера https://docs.cryptopro.r...s/plugin-samples-fileapiКак нужно по-другому действовать с файлами?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,278 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
т.е. читаете файл с диска? Проверим результат? Пришлите в архиве пример, файл\ файл с base64. можно получить тестовый сертификат и подписать что-то тестовое (xml win1251). Либо выкладывайте "пример" html+js в архиве. На тестовой странице смотрели пример (только там присоединенная ЭП создаётся) и пробовали подписать\проверить свой xml? |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close