从不可导出的密钥容器导出snk

时间:2011-09-07 10:59:09

标签: .net cryptography strongname private-key snk

我使用sn -k KeyFile.snk创建了一个snk文件 我将它安装在我的测试机器上并签署了几个文件用作许可证文件 我导出了公钥并将其嵌入我的应用程序中以验证许可证。

现在的问题是我丢失了Keyfile.snk,我想在生产服务器上安装密钥对。我无法生成新的密钥对,因为我已经使用旧的密钥对发布了许可证,并且该应用程序已经安装在多个客户的PC上。

我尝试从我的测试机器的密钥容器中导出它,但它被设置为不可导出 我使用mimikatz强制导出。它有效,但它返回了一个.pvk文件 而现在我被卡住了。

知道我该怎么做才知道吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

我是mimikatz的作者,难道你不知道你可以用OpenSSL转换PVK吗?

http://blog.gentilkiwi.com/cryptographie/openssl-conversion-pvk-microsoft-privatekey-blob

您还可以使用公共证书(sn -p)和转换的PEM密钥创建pfx / p12:)

答案 1 :(得分:0)

.pvk 格式通常用于存储Authenticode(tm)私钥。这是一种简单的格式,Mono项目有阅读它的工具。 Mono还具有读取和写入 .snk 文件的工具。

但是我不记得有任何工具在进行转换,因此您可能需要编写一小段代码来读取PVK并将其写为SNK(中间有RSA实例)。

您需要的一切都存在于Mono提供的Mono.Security程序集中(或者您可以自行编译)。

免责声明: 我是上面讨论过的Mono代码的主要作者,并且它都是在MIT.X11许可下提供的