问题标签 [snk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7487 浏览

c# - 开始收到错误:错误签名程序集 -- 未知错误 (8013141c)

Visual Studio 2013 - 编译时开始收到错误:“错误签名程序集 -- 未知错误 (8013141c)”。很少有项目使用 snk 文件进行签名。它曾经编译过,并且已经投入生产了很长一段时间。

0 投票
0 回答
278 浏览

c# - 如何使用 PowerShell 将 snk 转换为 pfx?

这个答案在这里给出了一种使用 powershell 将 pfx 转换为 snk 的方法(围绕System.Security.Cryptography方法)。

我将如何做相反的事情,将.snk文件转换为.pfx?我可以使用 读取.snk文件Get-Content,并以某种方式使用ImportCspBlob来获取X509Certificate2对象,但我不知道:

  1. 如何实例化ImportCspBlob以获取该证书对象
  2. 如何.pfx从该对象导出

对于它的价值,我尝试实例化 anX509Certificate2然后 run ImportCspBlob,但构造函数失败:

编辑:

@TheIncorrigible 指出了构造函数问题,现在已修复。主要问题仍然存在。

我希望空的构造函数能够工作。

更新:

我不再需要这个问题了。原来它不是文件中的公私密钥对.snk,而是一些基本的对称密钥材料,密码加密。不过,我会留下这个问题,以防答案对其他人有用。

0 投票
0 回答
89 浏览

c# - 我们可以将 .snk 文件用于 c++ dll 吗?

如果有人可以帮助我,那就太好了。我最近开始探索强命名程序集。我想了解以下内容:

  • .snk文件,它包含什么?
  • 我们可以将此.snk文件用于 c++ dll 吗?
  • 这仅限于.net装配吗?
  • 我们可以使用它.snk来加载或卸载 dll 吗?
  • 这有多安全?
0 投票
1 回答
1190 浏览

.net - 创建自定义 .SNK 文件

如果我已经有我的私钥/公钥对(以任意格式,但为了清楚起见,假设我们已经生成它在 linux 上,使用ssh-keygen)?

0 投票
0 回答
201 浏览

assemblies - 迁移现有密钥容器以实现强命名

如何将密钥容器从一台机器迁移到另一台机器?

我在旧机器上有一个用于强命名程序集的密钥容器。
目前我正在将项目迁移到更新的机器上。
不幸的是,旧机器上的密钥容器被标记为不可导出,但我设法使用mimikatz导出它。
结果是一个 PVK 文件(私钥),我使用 Chilkat library 将其转换为 XML 文件 (RSAKeyValue )
然后可以使用 aspnet_regiis 将 xml 文件导入到新机器上的密钥容器中。
但是,在新机器上构建项目时,我收到此链接器错误:

LINK:致命错误 LNK1256:ALINK 操作失败(80040405):密钥容器名称“...”不存在

我注意到使用 aspnet_regiis 和 sn.exe 创建的密钥容器之间存在差异。
链接器可以找到使用 sn.exe 生成的密钥容器,但找不到使用 aspnet_regiis 生成的密钥容器(上面的 LNK1256 错误)。
但是为了安装与 sn.exe 相同的密钥容器,它需要是一个 .snk 文件,我还没有设法转换它。
如果我可以将其转换为 .snk 文件,则不必将其导入密钥容器,因为我也可以使用强名称密钥文件进行签名。

0 投票
1 回答
208 浏览

sql-server - 由于公共令牌不匹配,从源运行 tSQLt 项目失败

我正在尝试对 tSQLt 框架进行一些改进,并且我已经完成了大部分工作,但由于与我没有触及的证书相关的少数测试仍然失败,因此无法做到这一点:

失败的错误是:

我将尝试描述我的安装过程。

我使用以下指南安装了这个框架源。但是,在那之后我无法启动该项目,因为它因以下错误而失败,并且整个问题的解决都在那个SO 帖子中完成:

[exec]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3325:无法导入以下密钥文件:tSQLtOfficialSigningKey.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_C20B79DE0583A5C1 [E:\Source\tSQLt\tSQLtCLR\tSQLtCLR\tSQLtCLR.csproj] [exec]
C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3321:导入密钥文件“tSQLtOfficialSigningKey.pfx”已取消。[E:\Source\tSQLt\tSQLtCLR\tSQLtCLR\tSQLtCLR.csproj]

为了解决这个问题,我为每个没有密码的项目创建了新密钥:

在此处输入图像描述

我看到它创建了snk文件,而不是原始pfx的 . 之后,我尝试再次运行构建,但由于我上面提到的错误而失败。

0 投票
0 回答
69 浏览

msbuild - 错误 MSB3326:无法导入以下密钥文件 XXXXXXSigningKey.snk

在 TeamCity Server 上构建解决方案时出现以下错误

C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(2718,5):错误 MSB3326:无法导入以下密钥文件:XXXXXXSigningKey.snk。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储区。[E:\BuildAgent\work\2ae7096f1a3f5702\dev\dir\proj.csproj] [17:20:02] [步骤 3/9] C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common. CurrentVersion.targets(2718,5):错误 MSB3321:已取消导入密钥文件“XXXXX_XXXX_certificate.pfx”。

该错误是针对密钥文件的,我没有针对错误 XXXXXXSigningKey.snk 的特定证书。此证书仅在构建解决方案本地开发环境时使用。

我已经为“XXXXX_XXXX_certificate.pfx”证书相关错误安装了证书 pfx 文件。

0 投票
0 回答
104 浏览

code-signing - 从 pfx 文件计算公钥令牌

我想从 pfx 文件中计算公钥令牌,并确保它与签名程序集的公钥令牌匹配,但我一直遇到以下问题,并希望获得有关如何修复它的帮助。

在签名的程序集中,我使用以下代码获取公钥和公钥令牌:

结果如下:

如果我使用上面提到的公钥的值,我可以自己在 Powershell 中重新计算公钥令牌:

输出是:

0C-C2-5B-D7-34-42-06-3D


现在,如果我使用我用来签署上述程序集的 pfx 文件,我似乎无法获得相同的公钥值。这是我设法来的最接近的:

这将产生以下公钥:

正如你所看到的,它在两个字节上有所不同,看起来像是一个标题。(开头的A4。)

00- A4 -00-00-04-80-00-00-94-00-00-00-06-02-00-00-00- A4 -00-00-...

我用几个不同的键试过这个。因为公钥令牌是一个哈希,所以它阻止我计算和比较两个公钥令牌。

我该如何纠正这个问题,你知道这些值的含义吗?