我需要从.NET 4.6访问CNG证书的私钥。
在文档中我找到了扩展方法GetCngPrivateKey,但在Visual Studio 2015中我无法使用此方法。
也许这个方法已从上一版.NET框架中删除。
现在有什么建议可以正确访问CNG证书的私钥。
答案 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。强制转换的唯一原因是互操作(比如试图获取持久密钥的名称)。