【发布时间】:2014-01-30 18:00:35
【问题描述】:
我正在尝试创建自己的工具,仅使用 C# 代码使用 StrongNames 对我的程序集进行签名。
我已经能够使用 System.Security.Cryptography 中的 .Net RSA 类生成签名和密钥。我现阶段的问题是将签名和公钥添加到程序集清单中。
这完全可以使用代码而不是使用某些工具来实现吗? 请注意,我想在 Visual Studio 之外(在运行时)签署我的程序集,仅使用 .Net Cryptography 类来生成密钥对。
我尝试使用 System.Reflection 中的 AssemblyName 类的方法添加信息,但我无法提交更改(它有一个 SetPublicKey 方法)。
基本上我的应用程序将执行的操作类似于 sn.exe,能够将签名和密钥添加到清单中非常重要,以便其他强命名程序集可以引用我的。
如果涉及到它,我如何读取由 sn.exe 工具创建的私钥和公钥,我尝试过但不确定 .snk 文件使用哪种编码?如果我无法使用代码对程序集进行签名,我将使用 sn.exe,但出于我自己的原因,我想从密钥对文件中读取密钥并将它们与 RSA 类一起使用。
任何帮助将不胜感激。
【问题讨论】:
标签: c# .net reflection .net-assembly assembly-signing