将私钥导出为字节数组的最佳方法

时间:2011-10-24 10:42:39

标签: c# private-key x509certificate2

我编写的应用程序必须从用户获取私钥,然后将其作为base64发送到另一个应用程序,我想允许用户使用私钥插入X509Certificate2。 现在我的主要问题是如何将私有密钥从AsimetricAlgorithm对象转换为包含所有私钥的bate数组? 我看到我可以使用openSSl - 将所有证书转换为pem文件,然后转换为RSA文件 - 并读取私钥,但我不想使用它因为:我不想使用文件,3P库,它不是安全等等.. 有没有人知道另一种方法呢?

提前感谢!

1 个答案:

答案 0 :(得分:2)

您从AsymmetricAlgorithm的{​​{1}}属性获得的PrivateKey对象实际上是来自X509Certificate2的各种类型之一的实例,例如{ {1}},AsymmetricAlgorithm等......

您需要确定要处理的私钥类型,并适当地进行转换。投射后,您应该可以致电RSACryptoServiceProvider获取私钥数据。

示例(假设RSA密钥):

DSACryptoServiceProvider