【问题标题】:C# Sign Assembly Using Code使用代码的 C# 签名程序集
【发布时间】: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


    【解决方案1】:

    Mono 项目提供了它自己的sn 工具,该工具完全使用 C# 构建并依赖于Mono.Security.dll(也适用于 Windows)。所有这些都是在 MIT 许可下开源的。

    【讨论】:

    • 这或多或少是我想要的,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2012-12-17
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    相关资源
    最近更新 更多