将.NET XML格式的DSA非对称密钥转换为PEM格式

时间:2010-07-26 19:10:50

标签: c# php .net cryptography openssl

我使用DSA导出DSACryptoServiceProvider.ToXmlString个私钥,我需要将其转换为PEM格式(“ file.pem ”),所以我可以使用PHP函数在openssl_pkey_get_private中打开它。

我如何做到这一点?

如果有任何帮助,解决方案可以使用DSACryptoServiceProvider.ExportCspBlob方法,我只需要转换密钥。

1 个答案:

答案 0 :(得分:10)

使用bouncycastle C#库类DotNetUtilities,这很容易。

DSACryptoServiceProvider dsa = new DSACryptoServiceProvider(1024);
AsymmetricCipherKeyPair dsaKey = DotNetUtilities.GetDsaKeyPair(dsa);
using (StreamWriter sw = new StreamWriter("dsa.pem"))
{
    PemWriter pw = new PemWriter(sw);
    pw.WriteObject(dsaKey);
}