БСП Электронная подпись двоичных данных

1. CrazyBee 4 24.08.22 10:46 Сейчас в теме
Доброго дня, на клиенте вызываю стандартную БСП процедуру для подписания ХМЛ файла, который заранее был помещен в адрес временнего хранилище.



&НаКлиенте
Процедура ПодписатьЭП(Команда)
	
	ОбработкаРезультата = Новый ОписаниеОповещения("ПослеПодписанияДанных", ЭтотОбъект);
	
	ОписаниеДанных = Новый Структура;
	ОписаниеДанных.Вставить("Операция", "ПодписаниеДанных");
	ОписаниеДанных.Вставить("ЗаголовокДанных", "Подписание хмл файла - " + ИмяФайла);
	ОписаниеДанных.Вставить("Данные", АдресВременнегоХранилище);

	ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Неопределено, ОбработкаРезультата);

КонецПроцедуры

Показать



После подписания перехожу в оповещение ОбработкаРезультата, но не вижу подписанные данные.


&НаКлиенте
Процедура ПослеПодписанияДанных(Результат, ДополнительныеПараметры) Экспорт
	
	ВремФайл = ПолучитьИмяВременногоФайла("XML");
	
	Данные = Результат.Данные;
	
	ДД = ПолучитьИзВременногоХранилища(Данные);
	
	дд.Записать(ВремФайл);
	
	
КонецПроцедуры

Показать



Как вообще это делается и возможно ли подписать данным способом?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. ishelper 24.08.22 14:42 Сейчас в теме
(1)
вызываю стандартную БСП процедуру для подписания ХМЛ файла, который заранее был помещен в адрес временнего хранилище.
А ничего, что во временном хранилище может быть несколько файлов? И не только файлов...

Или "умная 1С" должна сама в этом разобраться?
возможно ли подписать данным способом?
ИМХО, если и возможно, то обращаться надо к файлу (конкретному!), а не ко временному хранилищу в целом - там может быть винегрет.
2. laperuz 46 24.08.22 10:47 Сейчас в теме
Криптопро/випнет стоят, сертификат установлен/запрашивается у пользователя?
3. CrazyBee 4 24.08.22 10:54 Сейчас в теме
(2) Сертификат установлен и выбирается пользователем, после подписания переходит в обработчик ПослеПодписанияДанных, в котором в параметре Результат указан успех. Как мне получить обратно подписанный ХМЛ?
4. laperuz 46 24.08.22 11:23 Сейчас в теме
(3)Речь о XMLDSig? Или в каком виде вы хотите подписанный документ получать? Сама подпись доступна через Результат.СвойстваПодписи.Подпись
5. CrazyBee 4 24.08.22 11:36 Сейчас в теме
(4) Да, в результате я хочу получить XML файл, соответствующему консорциуму W3C. А конкретно внутри через XMLDSIG.

ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
6. laperuz 46 24.08.22 11:48 Сейчас в теме
(5) Тогда примерно так:

ОбработкаРезультата = Новый ОписаниеОповещения("ПослеПодписанияДанных", ЭтаФорма);
	
	СтруктураПодписи = Новый Структура("Конверт,ПараметрыXMLDSig");                 

	ПараметрыКонверта = ЭлектроннаяПодписьКлиент.ПараметрыКонвертаXML();
	ПараметрыКонверта.СообщениеXML = "<test></test>";
	
	СтруктураПодписи.Конверт = ЭлектроннаяПодписьКлиент.КонвертXML(ПараметрыКонверта);
	СтруктураПодписи.ПараметрыXMLDSig = ЭлектроннаяПодписьКлиент.ПараметрыXMLDSig();

	
    ОписаниеДанных = Новый Структура;
    ОписаниеДанных.Вставить("Операция", "ПодписаниеДанных");
    ОписаниеДанных.Вставить("ЗаголовокДанных", "Подписание хмл файла - " );
    ОписаниеДанных.Вставить("Данные", СтруктураПодписи);

    ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Неопределено, ОбработкаРезультата);
Показать


В ПараметрыКонверта.СообщениеXML передаете свой XML. Конверт, содержащий дайджест и подпись, будет в Результат.СвойстваПодписи.Подпись
7. CrazyBee 4 24.08.22 12:20 Сейчас в теме
(6) Извиняюсь, в какой версии БСП вы это реализовали?
8. CrazyBee 4 24.08.22 12:21 Сейчас в теме
(6) В возвращаемой структуре отсутствует "СвойстваПодписи"
9. laperuz 46 24.08.22 12:29 Сейчас в теме
(8)Пробовал на ЗКГУ 3.1, БСП 3.1.6.227
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот