Подписать текстовый файл присоедиенной ЭЦП
Необходимо подписать текстовый файл ЭЦП, так что бы ЭЦП находилась в этом файле вместе с подписанным текстом.
Могу вот так:
Но подпись получается отдельно от текстового файла, мне необходимо что бы была в текстовом файле, вместе с текстом.
Могу вот так:
ТипМенеджераКриптографии = 81;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", ТипМенеджераКриптографии);
...
МенеджерКриптографии.ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.НеВключать;
МенеджерКриптографии.Подписать(ФайлЗапроса, ФайлЗапроса + ".p7s", Сертификат);Но подпись получается отдельно от текстового файла, мне необходимо что бы была в текстовом файле, вместе с текстом.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Может напрямую через Crypto API подписывать?
МенеджерКриптографии (CryptoManager)
Подписать (Sign)
Описание:
Создает подпись в формате CMS (базируется на PKCS#7) и возвращает ее как ДвоичныеДанные или сохраняет ее в файл.
Подпись создается алгоритмами, которые заданы свойствами АлгоритмХеширования и АлгоритмПодписи.
В данные подписи исходный файл не включается.
Подписать (Sign)
Описание:
Создает подпись в формате CMS (базируется на PKCS#7) и возвращает ее как ДвоичныеДанные или сохраняет ее в файл.
Подпись создается алгоритмами, которые заданы свойствами АлгоритмХеширования и АлгоритмПодписи.
В данные подписи исходный файл не включается.
Может напрямую через Crypto API подписывать?
(10)
Как в данном случае получить файл в который включены подпись и подписанные данные? я думаю никак.
(10)
Пробовал вот так:
oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
oSignedData.Content = Base64Строка(ДвоичныеДанные);
oSignedMessage = oSignedData.SignCades(oCertificate, 65535, false, 0);
ошибка: CAdESCOM.CadesSignedData.1 Интерфейс не поддерживается
Обновление компоненты не помогло.
Возможно у вас есть другой пример кода.
МенеджерКриптографии (CryptoManager)
Подписать (Sign)
Описание:
Создает подпись в формате CMS (базируется на PKCS#7) и возвращает ее как ДвоичныеДанные или сохраняет ее в файл.
Подпись создается алгоритмами, которые заданы свойствами АлгоритмХеширования и АлгоритмПодписи.
В данные подписи исходный файл не включается.
Подписать (Sign)
Описание:
Создает подпись в формате CMS (базируется на PKCS#7) и возвращает ее как ДвоичныеДанные или сохраняет ее в файл.
Подпись создается алгоритмами, которые заданы свойствами АлгоритмХеширования и АлгоритмПодписи.
В данные подписи исходный файл не включается.
Как в данном случае получить файл в который включены подпись и подписанные данные? я думаю никак.
(10)
Может напрямую через Crypto API подписывать?
Пробовал вот так:
oSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
oSignedData.Content = Base64Строка(ДвоичныеДанные);
oSignedMessage = oSignedData.SignCades(oCertificate, 65535, false, 0);
ошибка: CAdESCOM.CadesSignedData.1 Интерфейс не поддерживается
Обновление компоненты не помогло.
Возможно у вас есть другой пример кода.
Например, в описании сказано, что:
Посмотрите вот это, может пригодится:
В программе 1С:Предприятие возможна работа только с отсоединенной электронной подписью. Работа с присоединенными подписями и подписями внутри документа в программе недоступна.
Посмотрите вот это, может пригодится:
(4) не смогу, у меня на это несколько причин: не понятно будет ли это работать (у меня не честный знак), у меня нет стартмани.
В БСП есть вот это ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Форма, ОбработкаРезультата, ТипПодписи), разобраться не смог, эта штука работает в асинхронном режиме (мне в существующий код это вставлять очень сложно), непонятно куда кладет подписанный файл.
В БСП есть вот это ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных, Форма, ОбработкаРезультата, ТипПодписи), разобраться не смог, эта штука работает в асинхронном режиме (мне в существующий код это вставлять очень сложно), непонятно куда кладет подписанный файл.
(16) Вообще 1С умеет присоединенную подпись только у PDF. И это понятно, поскольку ЭЦП в PDF ложиться в отдельный слой и не меняет содержимое документа. Т.е. можно даже несколько раз подписать и все подписи будут действительны, если документ не менялся. А вот как в TXT сделать? Крипто вроде умеет делать контейнер с файлом и подписью. Это типа для пересылки по мылу. Но там все несколько иначе. Подпись проверяется при распаковке контейнера. Насколько я помню.
На инфостарте валяется моя обработка для формирования ЭЦП, в том числе присоединенной. Но txt только отсоединенной умеет.
На инфостарте валяется моя обработка для формирования ЭЦП, в том числе присоединенной. Но txt только отсоединенной умеет.
Подписать текстовый файл присоединенной ЭЦП напрямую не получится. Вы можете либо создать контейнер с нужным файлом и подписать его (так, например, делает КриптоАРМ), либо конвертировать его в другой формат (если есть возможность договориться с другой стороной).
Кстати, а чем открепленная подпись не устраивает?
Кстати, а чем открепленная подпись не устраивает?
(16)
Как это сделать? у меня так и не получилось. Есть пример кода.
(16)
нет, с принимающей стороной нет возможности договориться, у них только один вариант работает. Показали, что подписывать КриптоАРМ вот так.
Вы можете либо создать контейнер с нужным файлом и подписать его (так, например, делает КриптоАРМ)
Как это сделать? у меня так и не получилось. Есть пример кода.
(16)
(если есть возможность договориться с другой стороной).
Кстати, а чем открепленная подпись не устраивает?
Кстати, а чем открепленная подпись не устраивает?
нет, с принимающей стороной нет возможности договориться, у них только один вариант работает. Показали, что подписывать КриптоАРМ вот так.
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
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот