Convert RSA PEM to XML .net framework

Viewed 2292

Is there a way to convert RSA PEM Public key to XML without using 3rd party library such as BouncyCastle. So far I understood System.Security.Cryptography only recognize xml sring. RSA.FromXmlString(PublicKey)

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArqNpTjJR6+aP7dYNTqIU
OPcpTirmN5JbS+ZL255MByiHWn7AF9DU5Q99TROtGbtqySuyzv3fu28YRRSIwK/J
kMLb50AEe3XvnUoZhN86QLCie3iFIq8kpELmX5v2GxCt15ks+cwGsYGYGGwTZNo2
2Y4W1cRgVBLhhbEbuvybKddi7UsmhJlbvLqinUUGCJFkgCAyIbYYowlUjZhbVjp9
DGiaF7EwpcbcERckYXwnKheejWG0chHL9Nt9YldW33Vjgb6s3A9GNF80XNuqT6GJ
T3h3Ig/aoK/9AIhVvc53atCJEgRnjKgfkYPr3SQoKLH7HDCq2TOwN9N5Mbp0QNvb
kwIDAQAB
-----END PUBLIC KEY-----

thanks in advance

UPDATE

found an answer in here.

stormwild/opensslkey.cs

1 Answers

If you're using .NET Core or .NET 5+, there's a helpful ToXmlString() method on the RSA class.

var privateKey = await File.ReadAllTextAsync("mypemfile.pem");
var rsa = RSA.Create();
rsa.ImportFromPem(privateKey.ToCharArray());
var d = new XmlDocument();
d.LoadXml(rsa.ToXmlString(true));
d.Save("mypemfile.xml");
Related