Подписать текстовый файл присоедиенной ЭЦП

1. user1393353 11 24.03.23 06:38 Сейчас в теме
Необходимо подписать текстовый файл ЭЦП, так что бы ЭЦП находилась в этом файле вместе с подписанным текстом.
Могу вот так:

 ТипМенеджераКриптографии = 81;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", ТипМенеджераКриптографии);
	...
	
МенеджерКриптографии.ВключениеСертификатовВПодпись =  РежимВключенияСертификатовКриптографии.НеВключать;

МенеджерКриптографии.Подписать(ФайлЗапроса, ФайлЗапроса + ".p7s", Сертификат);


Но подпись получается отдельно от текстового файла, мне необходимо что бы была в текстовом файле, вместе с текстом.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
10. RustamZz 24.03.23 09:00 Сейчас в теме
(1)
МенеджерКриптографии (CryptoManager)
Подписать (Sign)
Описание:
Создает подпись в формате CMS (базируется на PKCS#7) и возвращает ее как ДвоичныеДанные или сохраняет ее в файл.
Подпись создается алгоритмами, которые заданы свойствами АлгоритмХеширования и АлгоритмПодписи.
В данные подписи исходный файл не включается.

Может напрямую через Crypto API подписывать?
11. user1393353 11 24.03.23 09:11 Сейчас в теме
(10)
МенеджерКриптографии (CryptoManager)
Подписать (Sign)
Описание:
Создает подпись в формате CMS (базируется на PKCS#7) и возвращает ее как ДвоичныеДанные или сохраняет ее в файл.
Подпись создается алгоритмами, которые заданы свойствами АлгоритмХеширования и АлгоритмПодписи.
В данные подписи исходный файл не включается.


Как в данном случае получить файл в который включены подпись и подписанные данные? я думаю никак.


(10)
Может напрямую через Crypto API подписывать?

Пробовал вот так:
oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
oSignedData.Content = Base64Строка(ДвоичныеДанные);
oSignedMessage = oSignedData.SignCades(oCertificate, 65535, false, 0);

ошибка: CAdESCOM.CadesSignedData.1 Интерфейс не поддерживается
Обновление компоненты не помогло.

Возможно у вас есть другой пример кода.
12. RustamZz 24.03.23 09:46 Сейчас в теме
(11)
Как в данном случае получить файл в который включены подпись и подписанные данные? я думаю никак.
с помощью МенеджераКриптографии - никак.
Возможно у вас есть другой пример кода.
Не подскажу. Пока устраивает отсоединенная подпись.
17. independ 1518 28.03.23 04:37 Сейчас в теме
2. comptr 30 24.03.23 08:01 Сейчас в теме
А разве формат TXT предполагает хранение присоединенной подписи?
15. user1393353 11 27.03.23 11:18 Сейчас в теме
(2) КриптоАРМ может так подписывать, при открытии это выглядит как иероглифы и сам подписанный текст.
https://ca.kontur.ru/articles/ecp-terminy - раздел "Присоединенная электронная подпись"
3. laperuz 46 24.03.23 08:03 Сейчас в теме
Cмотрите в сторону XML и XMLDSig
5. user1393353 11 24.03.23 08:34 Сейчас в теме
(3) смотрел не помогло, примера для прикрепление подписи ко всему файлу не нашел, только подпись отдельных тэгов
7. laperuz 46 24.03.23 08:50 Сейчас в теме
(5)А в чем проблема поместить все ваше содержимое, которое нужно подписать, в отдельный тэг?
8. user1393353 11 24.03.23 08:58 Сейчас в теме
(7) предложение кажется мне странным, наверное я чего то не понимаю, но в итоге получим в одном тэге текст в другом подпись, не примет сервер такой запрос.
9. laperuz 46 24.03.23 08:59 Сейчас в теме
(8)Вы точно не смотрели что такое XMLDSig, если предложение о том, что в одном теге текст, а в другом - подпись кажется вам странным.
14. user1393353 11 27.03.23 11:16 Сейчас в теме
(9) принимающая сторона не примет такой формат. Вот когда КриптоАРМ подписано со снятой галочкой "сохранить подпись в отдельном файле", тогда принимает.
4. comptr 30 24.03.23 08:10 Сейчас в теме
Например, в описании БСП 3.1.7 сказано, что:
В программе 1С:Предприятие возможна работа только с отсоединенной электронной подписью. Работа с присоединенными подписями и подписями внутри документа в программе недоступна.


Посмотрите вот это, может пригодится: https://infostart.ru/public/1493281/
6. user1393353 11 24.03.23 08:38 Сейчас в теме
(4) не смогу, у меня на это несколько причин: не понятно будет ли это работать (у меня не честный знак), у меня нет стартмани.
В БСП есть вот это ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Форма, ОбработкаРезультата, ТипПодписи), разобраться не смог, эта штука работает в асинхронном режиме (мне в существующий код это вставлять очень сложно), непонятно куда кладет подписанный файл.
13. serg33rus 21 24.03.23 20:36 Сейчас в теме
(16) Вообще 1С умеет присоединенную подпись только у PDF. И это понятно, поскольку ЭЦП в PDF ложиться в отдельный слой и не меняет содержимое документа. Т.е. можно даже несколько раз подписать и все подписи будут действительны, если документ не менялся. А вот как в TXT сделать? Крипто вроде умеет делать контейнер с файлом и подписью. Это типа для пересылки по мылу. Но там все несколько иначе. Подпись проверяется при распаковке контейнера. Насколько я помню.
На инфостарте валяется моя обработка для формирования ЭЦП, в том числе присоединенной. Но txt только отсоединенной умеет.
16. Mistrall 28.03.23 04:17 Сейчас в теме
Подписать текстовый файл присоединенной ЭЦП напрямую не получится. Вы можете либо создать контейнер с нужным файлом и подписать его (так, например, делает КриптоАРМ), либо конвертировать его в другой формат (если есть возможность договориться с другой стороной).
Кстати, а чем открепленная подпись не устраивает?
18. user1393353 11 28.03.23 18:34 Сейчас в теме
(16)
Вы можете либо создать контейнер с нужным файлом и подписать его (так, например, делает КриптоАРМ)

Как это сделать? у меня так и не получилось. Есть пример кода.


(16)
(если есть возможность договориться с другой стороной).
Кстати, а чем открепленная подпись не устраивает?

нет, с принимающей стороной нет возможности договориться, у них только один вариант работает. Показали, что подписывать КриптоАРМ вот так.
19. Mistrall 31.03.23 05:07 Сейчас в теме
(18)
(18)
Как это сделать? у меня так и не получилось. Есть пример кода.


Примера на1С у меня нет (задачи не ставилось). Единственное, что могу предложить это описание API КриптоАРМ.
20. independ 1518 06.04.23 15:29 Сейчас в теме
Подписать ЭЦП с помощью утилиты csptest.exe из КриптоПро
rem Подписать
csptest -sfsign -sign -in 08_110400716550_002_19012023_B6662EA1-EC95-423A-95B5-793526329DA9.xml -out 08_110400716550_002_19012023_B6662EA1-EC95-423A-95B5-793526329DA9.xml.sig -my B030C18CB16B8A0EFBDB7DB5F8131D5C2E2617D1 -addsigtime -add
rem Зашифровать
csptest -sfenc -encrypt -in 08_110400716550_002_19012023_B6662EA1-EC95-423A-95B5-793526329DA9.xml.sig -out 08_110400716550_002_19012023_B6662EA1-EC95-423A-95B5-793526329DA9.xml.sig.enc -my bfdc1beae00ee5eb525fe029de79b7d3c7dee3fd
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)