3

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

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

也许此方法已从 .NET 框架的最新版本中删除。

任何建议现在访问 CNG 证书的私钥的正确方法是什么。

4

1 回答 1

3

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

Get[Algorithm]{Public|Private}Key 方法通常会在需要时返回 CNG(在 Windows 上)和 CAPI (CryptoServiceProvider)。在非 Windows 系统(对于 .NET Core)上,它们使用适合系统的任何支持类型。

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

于 2017-07-29T18:00:11.137 回答