Я подписываю dot net exe с помощью
signcode.exe with an spc/pvk combo
. Файл должен прочитать свой собственный открытый ключ во время выполнения, чтобы проверить некоторые данные. Я пошел разными путями.
Я пробовал
X509Certificate executingCert = X509Certificate.CreateFromSignedFile(exe);
выполнитьCert, тогда null. Я предполагаю, что signcode не создает файл с подписью X509, хотя, если есть переключатель, который нужно изменить, я буду рад пойти по этому пути.
отредактировано Оказывается, вышеперечисленное действительно работает .... У меня была нулевая проверка в обратном порядке (! =! = ==) :)
Assembly asm = Assembly.GetExecutingAssembly();
string exe = asm.Location;
X509Certificate executingCert = X509Certificate.CreateFromSignedFile(exe);
if (executingCert != null)
{
Console.WriteLine("Assembly is signed");
byte[] assemblyKey = executingCert.GetPublicKey();
}