对于我使用的API的实现,我需要提供一个证书,该证书由2个字节的数组组成,一个字节用于公共密钥,另一个字节用于私有密钥。
我最初的想法是使用.Net的X509Certificate对象执行此操作。但是我在努力获取私钥字节。
var certificate = new X509Certificate2("testCert.pfx", password, X509KeyStorageFlags.Exportable);
byte[] myPublicKey = certificate.GetRawCertData();
byte[] privateKey = ???
我尝试导出密钥,但是我不能单独导出私钥。
并且:
certificate.PrivateKey.ToXmlString(true);
在Ubuntu系统上不可用:-(
您有什么想法,如何从证书中获取私有字节? 可能X509Certificate2并不是最佳解决方案...
答案 0 :(得分:0)
使用以下X509Certificate2 extension methods的合适方法:
GetRSAPrivateKey(X509Certificate2)
-用于RSA密钥GetDSAPrivateKey(X509Certificate2)
-用于DSA密钥GetECDsaPrivateKey(X509Certificate2)
-用于EC键您需要使用的扩展方法取决于非对称密钥算法。