проверка отсоединенной подписи менеджером криптографии

1. dmitrixru 26.09.22 09:48 Сейчас в теме
Всем привет,
Возникла у нас необходимость проверять файлы, подписанные квалифицированной подписью в другой приложении посредством КриптоПро.
Платформа 8.3.20/8.3.21. Подпись отсоединенная, подписанный файл - простой doc

При попытке проверить подпись для тестового файла методами:
сертификат = неопределено;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", 80);
МенеджерКриптографии.ПроверитьПодпись(данные, подпись, Сертификат);
где данные = doc из вложения
подпись = sig из вложения (в формате .p7s)
Получаем ошибку:
Ошибка при вызове метода контекста (ПроверитьПодпись): Язык описания абстрактного синтаксиса данных. Обнаружено неверное значение тега. (Возможно, указан сертификат, не поддерживаемый данным модулем криптографии).

Собственно, если подпись содержит в себе 1 сертификат, то проверка происходит нормально,
а вот если в подписи больше сертификатов, например, КриптоПро добавляет сертификат промежуточного центра, то менеджер криптографии валится с ошибкой выше.

В ожидании ответа от службы поддержки 1С может у сообщества есть мысли и решения? ;)
Найденные решения
15. dmitrixru 14.11.22 17:25 Сейчас в теме
(14) Проблема в том, что файл подписи представлен в Base64 кодировке. Для методов ПроверитьПодпись, ПроверитьСертификат, файлы PKCS#7 (шифрованные пакеты и подписи), а также файлы сертификатов должны быть представлены в бинарном виде.
Если сконвертировать файл из Base64 в бинарный вид, то подпись успешно проверяется.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 26.09.22 10:21 Сейчас в теме
(1)При подписи платформа тоже по умолчанию добавляет промежуточный сертификат.
Никаких проблем с проверкой подписи не встречал.
Приложите сертификат, файл и подпись.
3. dmitrixru 26.09.22 11:10 Сейчас в теме
(2) с публикацией подписи есть сложности)
4. Sashares 34 26.09.22 11:32 Сейчас в теме
(3)Попробуйте на базе в которой есть БСП - добавьте в присоединенные файлы ваш файл и добавьте к нему подпись из внешнего файла. Нажмите проверить подпись. Если ошибки не будет, смотрите в чем у вас отличия.
5. dmitrixru 26.09.22 12:17 Сейчас в теме
(4) Спасибо, интересный метод.
Получили ошибку:
При получении сертификатов из файла подписи произошла ошибка:
Ошибка при чтении криптографических данных (2).

Версия компоненты ExtraCryptoAPI на клиенте - Компонента ExtraCryptoAPI не установлена (Не удалось подключить внешнюю компоненту "ExtraCryptoAPI".
Возможно компонента не предназначена для клиентского приложения Тонкий клиент (Windows x86-64).

Техническая информация:
e1cib/data/Справочник.ВнешниеКомпоненты.ХранилищеКомпоненты?ref=a309f9cfe28f5f7f11ec3fd70116f07d
Метод НачатьПодключениеВнешнейКомпоненты вернул Ложь.).

В справочнике внешняя компонента есть, обновлена.
10. dmitrixru 27.09.22 12:00 Сейчас в теме
(2) 1С зарегистрировала ошибку платформы 60002924
У вас точно все работает с 2-я сертификатами в подписи: )
Sashares; +1 Ответить
11. Sashares 34 27.09.22 13:10 Сейчас в теме
(10)Да, 2 недели назад проверял, все работало.
12. dmitrixru 28.09.22 09:12 Сейчас в теме
(11) А какая у вас версия платформы?
13. Sashares 34 28.09.22 09:14 Сейчас в теме
6. Sashares 34 26.09.22 12:37 Сейчас в теме
(1)
При попытке проверить подпись для тестового файла методами:
сертификат = неопределено;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", 80);
МенеджерКриптографии.ПроверитьПодпись(данные, подпись, Сертификат);


Собственно несколько вопросов.
Почему не указаны параметры менеджера криптографии? Если windows, то заполняется 1 параметр, для крипто про - "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider"

Почему сертификат неопределено?
7. dmitrixru 26.09.22 13:42 Сейчас в теме
(6) 1-й параметр не обязателен (точнее обязателен, но можно пустой строкой), он, насколько я понимаю, определяется автоматом из 3-го параметра. Тем не менее, я пробовал его указывать, и результат такой же.
Сертификат неопределено, потому что это переменная, в которую возвращается сертификат из подписи методом ПроверитьПодпись. Этот код есть как в примерах к платформе на ИТС, так и в типовой конфигурации.
8. Sashares 34 26.09.22 14:39 Сейчас в теме
(7)Логично =)
Тогда увы, других идей, кроме как проверить на другом компьютере, нет.
9. dmitrixru 26.09.22 15:11 Сейчас в теме
(8) в 1с еще неделю назад написали)
посмотрим, что ответят
Спасибо за идеи)
14. LSM 13.11.22 16:58 Сейчас в теме
(9) Столкнулся с той же проблемой установки ExtraCryptoAPI. У Вас получилось решить?
15. dmitrixru 14.11.22 17:25 Сейчас в теме
(14) Проблема в том, что файл подписи представлен в Base64 кодировке. Для методов ПроверитьПодпись, ПроверитьСертификат, файлы PKCS#7 (шифрованные пакеты и подписи), а также файлы сертификатов должны быть представлены в бинарном виде.
Если сконвертировать файл из Base64 в бинарный вид, то подпись успешно проверяется.
16. is69 29.11.22 13:42 Сейчас в теме
(1) Скажите, dmitrixru, а был ответ по вашей ошибке от 1С?
17. dmitrixru 30.11.22 11:18 Сейчас в теме
(16) Да, я его в (15) написал
18. is69 30.11.22 13:06 Сейчас в теме
(15) Странно. Да, есть такое дело. Но, у меня подобная ошибка появилась на одной подписи, которая была в бинарном виде (важный момент - в ЭП лежит вся цепочка сертификатов, и автора подписи БСП брала из корневого сертификата, т.е. "Минцифры", почему то). Но ... такая ошибка обнаружилась на БСП 3.1.7 (и ещё пробовал на 2.2.Х, то же самое). А в тестовой БСП 3.1.8. всё уже Ок.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

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

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

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

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