Paya
Paya

Reputation: 5222

Convert DSA asymmetric key in .NET XML format to PEM format

I have a DSA private key exported using the DSACryptoServiceProvider.ToXmlString, and I need to convert it to PEM format ("file.pem"), so I can open it in PHP using openssl_pkey_get_private function.

How do I accomplish this?

The solution can use DSACryptoServiceProvider.ExportCspBlob method if it's of any help, I just need to convert the key.

Upvotes: 6

Views: 2194

Answers (1)

President James K. Polk
President James K. Polk

Reputation: 42009

Using the bouncycastle C# library class DotNetUtilities, it is fairly easy.

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);
}

Upvotes: 10

Related Questions