Добрый день. Разрабатываю продукт на .NET 6.0 (netcore). Есть задача выполнять проверку XmlDSig в XML-файлах, причем с использованием только функций из набора, приведенного в приложении 2 "Перечень вызовов, использование которых при разработке систем на основе СКЗИ «КриптоПро CSP» с учетом п.1.5 Формуляра ЖТЯИ.00088-03 30 01 возможно без дополнительных тематических исследований" документа "КриптоПро CSP. Правила пользования" (ЖТЯИ.00088-03 95 01). Список разрешенных функций там довольно длинный, и в основном это те же функции, что есть в CryptoAPI Windows. Т.е. приложение не должно требовать дополнительных тематических исследований. Кроме того, приложение должно работать в linux. При проверке подписи нужно не только знать общий результат проверки (верна/неверна), но также по каждой подписи получить сертификаты и статус проверки каждой подписи и ее сертификатов.
Исходя из этих требований, я прихожу к выводу, что наилучшим способом будет использовать перечисленные разрешенные методы из библиотеки libcapi20.so через PInvoke. Нужно что-то похожее на
SignedXML, но реализованное только с помощью разрешенных функций. Подойдет пример на C.
Пример, приведенный
здесь, не подходит, т.к. он использует функцию XadesVerify и другие вспомогательные функции Xades*, а эти функции отсутствуют в списке разрешенных. Хотя казалось бы, что это то, что надо.
Пока что я нашел только один заархивированный пример
по этой ссылке, но он читает данные из пяти разных файлов и не выполняет никаких XML-трансформаций, в результате непонятно, как это использовать, кроме того там нет файлов, которые он в коде читает, поэтому сложно прикинуть, в каком хотя бы формате нужны ему данные (можно ли извлечь их все из подписанного xml).
Документ разрешает также использование приложение cryptcp, но, как я понял из других веток на этом форуме, его использовать для проверки XmlDSig также практически невозможно. Хотелось бы увидеть готовый работоспособный пример проверки XmlDSig с использованием только разрешенных функций и утилит. Помогите, пожалуйста, его найти.
Как альтернатива, хотелось бы получить свидетельство, что методы Xades* отсутствуют в списке разрешенных по какому-то недоразумению и на самом деле разрешены.
Отредактировано пользователем 23 ноября 2021 г. 19:25:34(UTC)
| Причина: Не указана