【问题标题】:How do I read the digital signature information from a signed .Net assembly?如何从已签名的 .Net 程序集中读取数字签名信息?
【发布时间】:2012-05-19 23:02:51
【问题描述】:

我正在编写要在我们的软件构建过程中使用的程序集信息应用程序,并尝试从已签名的 .Net 程序集中读取数字签名信息。

我想在我的 C# 代码中执行 Windows Explorer 可以执行的操作,方法是右键单击已签名的程序集并选择“数字签名”选项卡,然后单击“详细信息”按钮。例如

有没有人知道如何在 C# 中以编程方式执行此操作?我目前正在使用Mono Cecil library 从程序集中获取其余信息。非常感谢您的帮助。

【问题讨论】:

  • 你显示的是Authenticode签名,适用于所有PE文件。还有strongnaming,.NET 特定的签名格式。强命名是使用密钥对而不是证书完成的,因此您无法从强命名程序集中提取任何有用的信息。在 StackOverflow 上搜索 Authenticode 将为您提供大量有用的信息。
  • Possibly related 问题。
  • 成功了,X509Certificate.CreateFromSignedFile(exe) 就像一个魅力。但是,它引发了一个相当空的异常,如“如何从签名的 C# exe 读取公钥”链接中所示。

标签: c# x509certificate digital-signature signed authenticode


【解决方案1】:

来自this response

SignCode(用于 .Net 1.0 和 1.1)使用 Authenticode 签名,它作为 据我所知,缺少 .Net Framework 托管接口。

希望,看起来一些 Nuget 包实现了它:

【讨论】:

    【解决方案2】:

    Mono 项目提供signcodechktrust 的源代码,您可以在自己的应用程序中重复使用(开源,MIT X11 许可)。

    两者都使用Mono.Security.dll 程序集(在Windows 下工作,而不仅仅是Linux 和OSX)并包含一个相当的complete Authenticode support

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      相关资源
      最近更新 更多