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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline МарияК2603  
#1 Оставлено : 20 марта 2024 г. 13:47:06(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 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. Проверка в инструментах КриптоПро возвращает мне ошибку.

Я предполагаю, что я где то путаюсь в кодировке, пожалуйста, натолкните на мысль где именно.
СпасибО!
Offline Андрей *  
#2 Оставлено : 20 марта 2024 г. 14:01:37(UTC)
Андрей *

Статус: Сотрудник

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Здравствуйте.

CADESCOM_BASE64_TO_BINARY выставлен перед propset_Content ?

сдампить dts, декодировать и посмотреть, отличается от исходного?
Техническую поддержку оказываем тут
Наша база знаний
Offline МарияК2603  
#3 Оставлено : 21 марта 2024 г. 10:14:23(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline МарияК2603  
#4 Оставлено : 21 марта 2024 г. 10:16:06(UTC)
МарияК2603

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

Группы: Участники
Зарегистрирован: 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. И там такая же цепочка действий отрабатывает на "ура".

И я предполагаю, что все дело в кодировке.


Offline Андрей *  
#5 Оставлено : 21 марта 2024 г. 10:19:10(UTC)
Андрей *

Статус: Сотрудник

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Кодируете в base64 как? Как текст?... Отсюда и проблемы.
Техническую поддержку оказываем тут
Наша база знаний
Offline МарияК2603  
#6 Оставлено : 21 марта 2024 г. 10:48:05(UTC)
МарияК2603

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: Андрей * Перейти к цитате
Кодируете в base64 как? Как текст?... Отсюда и проблемы.


Получается, что я считываю содержимое файла через FileReader, readAsDataURL.
В результате чтения base64 строка, и перед подписанием из нее удаляется ";base64,".
Я так делаю согласно примера https://docs.cryptopro.r...s/plugin-samples-fileapi

Как нужно по-другому действовать с файлами?
Offline Андрей *  
#7 Оставлено : 21 марта 2024 г. 11:19:11(UTC)
Андрей *

Статус: Сотрудник

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
т.е. читаете файл с диска?

Проверим результат?

Пришлите в архиве пример, файл\ файл с base64.
можно получить тестовый сертификат и подписать что-то тестовое (xml win1251).

Либо выкладывайте "пример" html+js в архиве.

На тестовой странице смотрели пример (только там присоединенная ЭП создаётся) и пробовали подписать\проверить свой xml?
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
МарияК2603 оставлено 22.03.2024(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.