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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline skart84  
#1 Оставлено : 11 декабря 2019 г. 21:51:23(UTC)
skart84

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

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

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

Сабж собственно в названии темы.

Код:
CAdESCOM.CadesSignedData signedData = new CadesSignedData();
signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
signedData.Content = "UJDDMHPFYDBCWPBVBMEXAKJUVXRLLU";


В строке signedData.Content = "UJDDMHPFYDBCWPBVBMEXAKJUVXRLLU";
получаю ошибку: "Параметр задан неверно".

Видел на форуме темы про эту ошибку, но с тех пор прошло много лет и ошибка была исправлена (народ жаловался на ошибку при использовании плагина).

Разработка в VS на C#. Reference настроил на cadescom.dll, расположенную в CommonFiles после установки
Установлено cadescom версии 2.0, скачана последняя актуальная с центра загрузок (пробовали win32 и x64)

Строка "UJDDMHPFYDBCWPBVBMEXAKJUVXRLLU" получена от сервиса ЦРПТ (data - набор случайных данных для подписания)
Если добавить в конце ==, то ошибки нет.

Подскажите, куда копать. Спасибо.




Offline skart84  
#2 Оставлено : 11 декабря 2019 г. 22:14:31(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Скачал из шапки файлы
Interop.CAdESCOM
Interop.CAPICOM

После того как добавил их в референсы
signedData.Content стал типом byte[], а был string.

Вроде в примерах что видел строка передается.
Offline skart84  
#3 Оставлено : 11 декабря 2019 г. 22:28:28(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Перевел данные для signedData.Content в base64 - заработало.
При этом удалил из референсов dll из шапки форума и добавил dll из центра загрузки.
Offline Андрей Писарев  
#4 Оставлено : 12 декабря 2019 г. 0:20:59(UTC)
Андрей *

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

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

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

Проблема решена?
Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#5 Оставлено : 12 декабря 2019 г. 4:50:36(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Автор: skart84 Перейти к цитате
Код:
signedData.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
signedData.Content = "UJDDMHPFYDBCWPBVBMEXAKJUVXRLLU";
...
Если добавить в конце ==, то ошибки нет.
Это логично, указана кодировка Base64.
У Вас же длина не кратна 4, следовательно строка не может быть в кодировке Base64. И если это некодированные данные, то совершенно справделиво их надо закодировать в Base64, указанную в коде.

Отредактировано пользователем 12 декабря 2019 г. 5:47:01(UTC)  | Причина: Не указана

Offline skart84  
#6 Оставлено : 12 декабря 2019 г. 11:39:42(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Андрей Писарев Перейти к цитате
Здравствуйте.

Проблема решена?


С подписью да.
Но получаю ошибку при авторизации на тестовый сервис ЦРПТ (но это уже другая история видимо):

<UnauthorizedException><error>unauthorized</error><error_description>Full authentication is required to access this resource</error_description></UnauthorizedException>

Offline skart84  
#7 Оставлено : 12 декабря 2019 г. 11:41:23(UTC)
skart84

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: two_oceans Перейти к цитате
У Вас же длина не кратна 4, следовательно строка не может быть в кодировке Base64. И если это некодированные данные, то совершенно справделиво их надо закодировать в Base64, указанную в коде.


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