【问题标题】:Cryptographic failure while signing assembly '<assemblyname>.dll' – 'Bad Version of Provider'签署程序集“<程序集名称>.dll”时出现加密失败 - “提供程序的错误版本”
【发布时间】:2009-09-29 14:43:24
【问题描述】:

我从知名提供商处购买了验证码证书。

现在我想对程序集进行强命名,然后对其进行数字签名。

这是我到目前为止所做的:

  • 通过运行 sn.exe -p keypair.pfx key.snk 从 pfx 中提取公钥
  • 选中项目属性签名选项卡上的“签署程序集”和“仅延迟签署”复选框
  • 提供 key.snk 作为用于签名的密钥文件
  • 通过运行 sn.exe -tP key.snk 提取公钥令牌
  • 通过运行 sn -Vr * 在我的 devbox 上禁用强名称验证,

这个想法是在团队构建中禁用延迟签名并在那里提供 keypair.pfx 文件。这样,我可以在访问受限的团队构建服务器上对程序集进行完全签名,同时出于安全原因不在开发盒上提供私钥。

但是,当尝试在本地构建程序集时,我收到以下错误:

签名时加密失败 程序集'.dll' - '坏 提供者的版本

有人对此有解决方案吗?

【问题讨论】:

  • 您是否可能无法使用官方身份验证证书对程序集进行强命名? IE。您需要使用 sn -k 生成密钥对吗?

标签: signing strongname authenticode cryptography


【解决方案1】:

我收到了 Comodo 的回复:

VS2005/2008 有问题 验证码证书。 (微软 等级)它们不能用于强 命名的程序集。你必须创造 你自己的私钥做强 姓名签名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多