从.NET 4.6访问CNG证书的私钥 - 找不到GetCngPrivateKey

时间:2017-07-27 11:55:08

标签: certificate private-key .net-4.6 cng

我需要从.NET 4.6访问CNG证书的私钥。

在文档中我找到了扩展方法GetCngPrivateKey,但在Visual Studio 2015中我无法使用此方法。

也许这个方法已从上一版.NET框架中删除。

现在有什么建议可以正确访问CNG证书的私钥。

1 个答案:

答案 0 :(得分:2)

GetCngPrivateKey是4.6预览版的一部分,但已在4.6版本中删除。它被替换为GetRSAPrivateKey(和GetECDsaPrivateKey(4.6.1)和GetDSAPrivateKey(4.6.2))。

获取[算法] {公共|私人}密钥方法将在需要时通常(在Windows上)和CAPI(CryptoServiceProvider)返回CNG。在非Windows系统(用于.NET Core)上,它们使用适用于系统的任何适当的支持类型。

新方法还具有几乎不需要转换返回类型的优点。在4.6上,RSA基类得到了增强,因此所有RSA操作都可以在不进行转换的情况下完成。在4.6.1上增强了ECDSA,并且在4.6上增强了DSA。强制转换的唯一原因是互操作(比如试图获取持久密钥的名称)。