Я пытаюсь создать свой собственный инструмент для подписи моих сборок с помощью StrongNames, используя только код С#.
Мне удалось сгенерировать подпись и ключи, используя классы .Net RSA в System.Security.Cryptography. Моя проблема на данном этапе заключается в том, чтобы добавить подпись и открытый ключ в манифест сборки.
Возможно ли это вообще с помощью кода, а не с помощью какого-либо инструмента? Обратите внимание, что я хочу подписывать свои сборки вне Visual Studio (во время выполнения), используя только классы .Net Cryptography для создания пар ключей.
Я попытался добавить информацию, используя методы класса AssemblyName в System.Reflection, но не могу зафиксировать изменения (у него есть метод SetPublicKey).
По сути, то, что будет делать мое приложение, похоже на sn.exe. Очень важно, чтобы я мог добавить подпись и ключ в манифест, чтобы другие сборки со строгими именами могли ссылаться на мои.
Если дойдет до этого, как я могу прочитать закрытый и открытый ключи, созданные инструментом sn.exe, я пробовал, но не уверен, какую кодировку использует файл .snk? Если я не могу подписать свои сборки с помощью кода, я буду использовать sn.exe, но по своим причинам я хочу прочитать ключи из файла пары ключей и использовать их с классами RSA.
Любая помощь будет оценена.