Estoy usando RSA (Bouncy Castle API) en mi proyecto de C#. Me genera el par de claves con este método:Bouncy Castle, RSA: transformar claves en un formato de cadena
RsaKeyPairGenerator r = new RsaKeyPairGenerator();
r.Init(new KeyGenerationParameters(new SecureRandom(), 1024));
AsymmetricCipherKeyPair keys = r.GenerateKeyPair();
AsymmetricKeyParameter private_key = keys.Private;
AsymmetricKeyParameter public_key = keys.Public;
Ahora quiero guardarlas en un archivo txt pero el problema es que no puedo convertirlos a un formato de cadena. Leí en otra publicación que las claves deben ser serializadas usando:
PrivateKeyInfo k = PrivateKeyInfoFactory.CreatePrivateKeyInfo(private_key);
byte[] serializedKey = k.ToAsn1Object().GetDerEncoded();
¿Es la manera correcta? En caso afirmativo, ¿qué debo hacer después de esto? ¿Simplemente convertirlos de byte [] a String?
gracias por su respuesta rápida. Hice lo que dijo y como resultado obtuve esto ** MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJ7s/B4XNHmNa9LwZ91z ... ** Creo que debería ser un BigInteger, ¿no? porque en RSA usamos números (p, q ...) – Skeenor
El nombre del método (GetDerEncoded) sugiere que los datos devueltos contienen todos los parámetros clave RSA (p, q, ...) en formato codificado DER. –
@Rami: ¿Su objetivo es obtener algo que pueda "rehidratar" de nuevo a un PrivateKeyInfo? Si es así, no necesita saber los enteros, etc. ... solo quiere asegurarse de que pueda serializar a una matriz de bytes (y luego a una cadena) y viceversa. –