Convertendo uma Chave Pública RSA em uma Chave Pública RFC 4716 com Castelo Insuflável

Eu estou olhando para converter uma chave pública RSA em algo que eu poderia usar como uma chave pública SSH.

Atualmente tenho o Bouncy Castle me produzindo uma chave pública que se parece com isso:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq1Y5300i8bN+cI2U3wJE
Kh3xG/.........jbuz+WB0vvG
P25UwCle2k5siVMwbImEYsr+Xt0dsMmGVB3/6MHAqrM3QQdQ8p2E5TyzL+JYa1FT
gwIDAQAB
-----END PUBLIC KEY-----

Eu quero que ele tenha um formato RFC 4716 semelhante a este:

ssh-rsa AAAAB3NzaC1yc2.......G1p2Ag3mZLFsks7RNHVLgMsGIAikQ==

Meu Código até agora usando o Bouncy Castle é assim:

var r = new Org.BouncyCastle.Crypto.Generators.RsaKeyPairGenerator();
r.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
var keys = r.GenerateKeyPair();

var stringWriter = new StringWriter();

var pemWriter = new PemWriter(stringWriter);
pemWriter.WriteObject(keys.Private);
pemWriter.Writer.Flush();
stringWriter.Close();
PrivateKey = stringWriter.ToString();

stringWriter = new StringWriter();
pemWriter = new PemWriter(stringWriter);
pemWriter.WriteObject(keys.Public);
pemWriter.Writer.Flush();
stringWriter.Close();
PublicKey = stringWriter.ToString();

Como faço para reformatar e codificar a chave para que ela fique assim?

Alguém já criou chaves públicas SSH com Bouncy Castle ou similar?

questionAnswers(3)

yourAnswerToTheQuestion