首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对强命名的.NET程序集进行数字签名

对强命名的.NET程序集进行数字签名
EN

Stack Overflow用户
提问于 2015-05-08 11:07:44
回答 2查看 1K关注 0票数 4

我有一个.NET程序集,我给它起了很强的名字,可以把它放在GAC中。但是,同一程序集也将在稍后使用.pfx文件进行数字签名。

我注意到,这个程序集已经进行了如此双重的签名,失败了强名称验证,并且没有安装在目标机器的GAC中。

数字签名过程是否可能删除SN键生成的强命名过程?

数字签名是必不可少的,如果2是不兼容的,那么该文件是否可以由.pfx文件进行签名,就像SN命名过程一样容易?

而且,程序集在C++/CLI中,而不是在C#中。

编辑:查看MSDN文档,它说如果使用链接器选项进行强命名,如果使用像mt.exe这样的后处理工具(我不确定Signtool.exe是否属于这些工具),那么程序集就需要辞职。

此外,这一声明:

如果在开发环境中构建时使用签名属性,则可以在构建后事件中显式调用sn.exe (强名称工具),从而成功地对程序集进行签名。

...is有点让人困惑。它指的是哪些属性,CLR属性,还是Linker选项?

EN

回答 2

Stack Overflow用户

发布于 2015-05-08 19:19:10

它们是相容的,应按特定顺序适用:

  1. 强名称(sn.exe)
  2. 授权代码/代码签名/数字签名(signtool.exe)

我经常这样做,C#程序集没有任何问题。我不知道这对于c++来说是不同的。

这是因为强名称哈希代码不包括PE头的某些部分,包括authenticode散列。正如这里所解释的,这里

票数 4
EN

Stack Overflow用户

发布于 2017-04-20 00:49:18

我们构建了一些C++/CLI程序集。我们使用链接器开关:

  • /KEYFILE -选择带有公钥的snk文件
  • /DELAYSIGN -指定延迟签名

然后,在构建后的事件中,我们调用sn.exe来应用测试签名。

稍后,在将程序集包含在合并模块之前,我们调用:

  • sn.exe -应用实名制强名称签名
  • signtool.exe -应用Authenticode签名

您应该可以只使用/KEYFILE来指定保存键区的snk文件,然后调用signtool来执行Authenticode签名。

除非您正在使用其他的后期构建工具,否则应该可以做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30122304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档