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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline brenli  
#1 Оставлено : 25 марта 2020 г. 23:26:41(UTC)
brenli

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

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

Всем добра.
Пытаюсь подписать открепленной подписью заказ км в СУЗ, выдает такую ошибку.
Signature validation failed: message-digest attribute value does not match calculated value Subject:

Цитата:
| InStream=new ActiveXObject(""ADODB.Stream"");
| InStream.Type=1; // binary data
| InStream.Mode=3; // read/write
| InStream.Open();
| InStream.LoadFromFile(FileName);
| InData=InStream.Read(-1);
|
| Signer=new ActiveXObject(""CAdESCOM.CPSigner"");
| Signer.Certificate=Cert;
| Signer.TSAAddress = ""http://www.cryptopro.ru/tsp/tsp.srf"";
|
| SignedData=new ActiveXObject(""CAdESCOM.CadesSignedData"");
// | SignedData.ContentEncoding =1;
| Signer.Options=2;
| SignedData.Content=InData;
|
| OutSignedData=SignedData.SignCades(Signer,1,1);
|
| OutStream=new ActiveXObject(""ADODB.Stream"");
| OutStream.CharSet=""utf-8"";
| OutStream.Type=2; // text data
| OutStream.Mode=3; // read/write
| OutStream.Open();
| OutStream.WriteText(OutSignedData);
| OutStream.SaveToFile(OutFileName,2);
| OutStream.Close();


Подписание выглядит именно так. Работаю из 1с 7.
Как поправить результат? Спасибо
Offline brenli  
#2 Оставлено : 26 марта 2020 г. 9:57:05(UTC)
brenli

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

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

Кто нибудь может помочь мне?
Offline Захар Тихонов  
#3 Оставлено : 26 марта 2020 г. 10:01:13(UTC)
Захар Тихонов

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

Группы: Участники
Зарегистрирован: 17.08.2015(UTC)
Сообщений: 3,173
Мужчина
Тонга
Откуда: Калининград

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

Для оперативной поддержки по разработке, создайте заявку на портале ТП - https://support.cryptopro.ru/ , и укажите ваш сертификат на техническую поддержку "КриптоПро SDK".
Техническую поддержку оказываем тут.
Наша база знаний.
Offline brenli  
#4 Оставлено : 26 марта 2020 г. 11:43:01(UTC)
brenli

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

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

Автор: Захар Тихонов Перейти к цитате
Здравствуйте.

укажите ваш сертификат на техническую поддержку "КриптоПро SDK".


Можно подробнее. Что за сертификат?
Offline two_oceans  
#5 Оставлено : 26 марта 2020 г. 14:10:55(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Скорее всего дело вот в чем.
Цитата:
InData=InStream.Read(-1);
Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.
Цитата:
SignedData.Content=InData;
До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.
Offline Андрей *  
#6 Оставлено : 26 марта 2020 г. 14:38:14(UTC)
Андрей *

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

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

Сказал «Спасибо»: 489 раз
Поблагодарили: 2032 раз в 1576 постах
Автор: two_oceans Перейти к цитате
Скорее всего дело вот в чем.
Цитата:
InData=InStream.Read(-1);
Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.
Цитата:
SignedData.Content=InData;
До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.



т.к. используется CadesSignedData - то самое простое - выставить кодировку:
.ContentEncoding = CADESCOM_BASE64_TO_BINARY;

и передать файл как base64 строку.


Особенности работы с данными в КриптоПро ЭЦП
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
two_oceans оставлено 27.03.2020(UTC)
Offline brenli  
#7 Оставлено : 26 марта 2020 г. 15:12:01(UTC)
brenli

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

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

Автор: Андрей * Перейти к цитате
Автор: two_oceans Перейти к цитате
Скорее всего дело вот в чем.
Цитата:
InData=InStream.Read(-1);
Дает в переменную данные типа comsafearray который совсем не то же самое, что строка или массив байт по представлению в памяти. А смысл именно в получении в памяти идеальной копии файла и передаче копии из памяти в SignedData.Content.
Цитата:
SignedData.Content=InData;
До этой строки нужно перекодировать в обычный массив или подпись будет верна для safearray, но не будет верна для исходного файла. Пример есть в одной из соседних тем, но так сразу найти не могу.



т.к. используется CadesSignedData - то самое простое - выставить кодировку:
.ContentEncoding = CADESCOM_BASE64_TO_BINARY;

и передать файл как base64 строку.


Особенности работы с данными в КриптоПро ЭЦП


Выставил кодировку.
Выводит следующую ошибку .

Не важно, указываю я значение 1 или CADESCOM_BASE64_TO_BINARY выходит эта же самая ошибка.

Цитата:
Произошла ошибка при подписи файла!
Описание ошибки: CAdESCOM.CadesSignedData.1: Параметр задан неверно.
Стрим.LoadFromFile(Путь);
{C:\USERS\MASTERIT\DESKTOP\1C\КОНФИГУРАЦИИ\V7\ГИСМТ_1С77\EXTFORMS\ОБМЕНMARK\ПОДПИСАНИЕСЕРТИФИКАТОМMY.ERT(417)}: ADODB.Stream: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.

Отредактировано пользователем 26 марта 2020 г. 15:13:41(UTC)  | Причина: Не указана

Offline Андрей *  
#8 Оставлено : 26 марта 2020 г. 15:22:05(UTC)
Андрей *

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

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

Сказал «Спасибо»: 489 раз
Поблагодарили: 2032 раз в 1576 постах
Вызов SignCades(...) соответствует документации по параметрам?
Техническую поддержку оказываем тут
Наша база знаний
Offline brenli  
#9 Оставлено : 26 марта 2020 г. 18:12:45(UTC)
brenli

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

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

Автор: Андрей * Перейти к цитате
Вызов SignCades(...) соответствует документации по параметрам?


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