Мне нужно написать приложение .NET, которое можно экспортировать в .NET Framework 4.0.x, .NET Standard 2.0 и .NET Core 2.2, которое может подписывать сборки .NET (EXE, DLL) с помощью Authenticode ».format "с X509Certificate2
объектами.
До сих пор я нашел решения, использующие приложение SignTool или CryptUIWizDigitalSign
API, использующее SignerSignEx
API .Оба метода не совместимы с требованиями проекта.Сборка может быть экспортирована в цели, упомянутые в первом абзаце, но не работает с операционной системой, отличной от Windows XP и выше, или с Windows XP и выше, не относящимися к рабочему столу.
Я знаю, как япросто создайте подписи для больших двоичных объектов, используя управляемый код .NET Framework / Standard / Core, но простое добавление подписи к сборке приведет к поломке всей сборки, поскольку отсутствует разметка Authenticode.
Есть ли документация Authenticode о том, какФормат разработан, так что я могу переопределить формат с управляемым кодом?А как насчет метки времени, которая включена в стандарт Authenticode?
Или уже доступно управляемое решение, а я просто еще не нашел его?
Приложение должно быть написано вVB.NET или C #.Так что подсказки для обоих языков приветствуются.