我正在尝试创建自己的工具,仅使用C#代码使用StrongNames对程序集进行签名。
我已经能够使用System.Security.Cryptography中的.Net RSA类生成签名和密钥。我在这个阶段的问题是将签名和公钥添加到程序集清单。
这是否可以使用代码而不是使用某些工具? 请注意,我想在Visual Studio之外(在运行时)使用.Net Cryptography类来签署我的程序集来生成密钥对。
我尝试使用System.Reflection中的AssemblyName类的方法添加信息,但我无法提交更改(它有一个SetPublicKey方法)。
基本上我的应用程序将执行的操作类似于sn.exe,非常重要的是我能够将签名和密钥添加到清单中,以便其他强名称程序集可以引用我的。
如果涉及到它,我怎样才能读取sn.exe工具创建的私钥和公钥,我试过但不确定.snk文件使用哪种编码?如果我无法使用代码对程序集进行签名,那么我将使用sn.exe,但出于我自己的原因,我想从密钥对文件中读取密钥并将其与RSA类一起使用。
非常感谢任何帮助。