Как программно применять цифровые подписи Authenticode с метками времени к сборкам .NET без внешних библиотек или инструментов, использующих .NET? - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно написать приложение .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 #.Так что подсказки для обоих языков приветствуются.

...