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

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

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

В ожидании ответа от службы поддержки 1С может у сообщества есть мысли и решения? ;)
---
Проблема в том, что файл подписи представлен в Base64 кодировке. Для методов ПроверитьПодпись, ПроверитьСертификат, файлы PKCS#7 (шифрованные пакеты и подписи), а также файлы сертификатов должны быть представлены в бинарном виде.
Если сконвертировать файл из Base64 в бинарный вид, то подпись успешно проверяется.
---
При подписи платформа тоже по умолчанию добавляет промежуточный сертификат.
Никаких проблем с проверкой подписи не встречал.
Приложите сертификат, файл и подпись.
---
с публикацией подписи есть сложности)
---
Попробуйте на базе в которой есть БСП - добавьте в присоединенные файлы ваш файл и добавьте к нему подпись из внешнего файла. Нажмите проверить подпись. Если ошибки не будет, смотрите в чем у вас отличия.
---
Спасибо, интересный метод.
Получили ошибку:
При получении сертификатов из файла подписи произошла ошибка:
Ошибка при чтении криптографических данных (2).

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

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

В справочнике внешняя компонента есть, обновлена.
---
1С зарегистрировала ошибку платформы 60002924
У вас точно все работает с 2-я сертификатами в подписи: )
---
Да, 2 недели назад проверял, все работало.
---
А какая у вас версия платформы?
---
8.3.17.1851
---
При попытке проверить подпись для тестового файла методами:
сертификат = неопределено;
МенеджерКриптографии = Новый МенеджерКриптографии("", "", 80);
МенеджерКриптографии.ПроверитьПодпись(данные, подпись, Сертификат);

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

Почему сертификат неопределено?
---
1-й параметр не обязателен (точнее обязателен, но можно пустой строкой), он, насколько я понимаю, определяется автоматом из 3-го параметра. Тем не менее, я пробовал его указывать, и результат такой же.
Сертификат неопределено, потому что это переменная, в которую возвращается сертификат из подписи методом ПроверитьПодпись. Этот код есть как в примерах к платформе на ИТС, так и в типовой конфигурации.
---
Логично =)
Тогда увы, других идей, кроме как проверить на другом компьютере, нет.
---
в 1с еще неделю назад написали)
посмотрим, что ответят
Спасибо за идеи)
---
Столкнулся с той же проблемой установки ExtraCryptoAPI. У Вас получилось решить?
---
Проблема в том, что файл подписи представлен в Base64 кодировке. Для методов ПроверитьПодпись, ПроверитьСертификат, файлы PKCS#7 (шифрованные пакеты и подписи), а также файлы сертификатов должны быть представлены в бинарном виде.
Если сконвертировать файл из Base64 в бинарный вид, то подпись успешно проверяется.
---
Скажите, dmitrixru, а был ответ по вашей ошибке от 1С?
---
Да, я его в (15) написал
---
Странно. Да, есть такое дело. Но, у меня подобная ошибка появилась на одной подписи, которая была в бинарном виде (важный момент - в ЭП лежит вся цепочка сертификатов, и автора подписи БСП брала из корневого сертификата, т.е. "Минцифры", почему то). Но ... такая ошибка обнаружилась на БСП 3.1.7 (и ещё пробовал на 2.2.Х, то же самое). А в тестовой БСП 3.1.8. всё уже Ок.