using System.Security.Cryptography;
public static void Main()
using (var rsaOriginal = RSA.Create())
using (var rsaImportedPriv = RSA.Create())
using (var rsaImportedPub = RSA.Create())
var pkcs8Der = rsaOriginal.ExportPkcs8PrivateKey();
var spkiDer = rsaOriginal.ExportSubjectPublicKeyInfo();
var pkcs8Pem = new string(PemEncoding.Write("PRIVATE KEY", pkcs8Der));
var spkiPem = new string(PemEncoding.Write("PUBLIC KEY", spkiDer));
Console.WriteLine(pkcs8Pem);
Console.WriteLine(spkiPem);
rsaImportedPriv.ImportFromPem(pkcs8Pem);
rsaImportedPub.ImportFromPem(spkiPem);
Encoding.UTF8.GetBytes("The quick brown fox jumps over the lazy dog"),
RSAEncryptionPadding.Pkcs1),
RSAEncryptionPadding.Pkcs1)));