Convertir una clave pública RSA en una clave pública RFC 4716 con Bouncy Castle

Estoy buscando convertir una clave pública RSA en algo que pueda usar como una clave pública SSH.

Actualmente tengo a Bouncy Castle produciéndome una clave pública que se parece a esto:

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

Quiero que tenga un formato RFC 4716 similar a este:

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

Mi código hasta ahora usando Bouncy Castle se ve así:

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

¿Cómo formateo y codifico la clave para que se vea así?

¿Alguien ha creado claves públicas SSH con Bouncy Castle o similar?

Respuestas a la pregunta(3)

Su respuesta a la pregunta