Преобразование открытого ключа RSA в открытый ключ RFC 4716 с помощью Bouncy Castle
Я хочу преобразовать открытый ключ RSA во что-то, что я мог бы использовать в качестве открытого ключа SSH.
В настоящее время у меня есть Bouncy Castle, который выдает мне открытый ключ, который выглядит следующим образом:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq1Y5300i8bN+cI2U3wJE
Kh3xG/.........jbuz+WB0vvG
P25UwCle2k5siVMwbImEYsr+Xt0dsMmGVB3/6MHAqrM3QQdQ8p2E5TyzL+JYa1FT
gwIDAQAB
-----END PUBLIC KEY-----
Я хочу, чтобы он имел формат RFC 4716, похожий на этот:
ssh-rsa AAAAB3NzaC1yc2.......G1p2Ag3mZLFsks7RNHVLgMsGIAikQ==
Мой код до сих пор с использованием Bouncy Castle выглядит следующим образом:
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();
Как переформатировать и закодировать ключ, чтобы он выглядел следующим образом?
Кто-нибудь создал открытые ключи SSH с помощью Bouncy Castle или аналогичного?