Je travaille sur un projet où j'ai besoin de mon application pour générer une clé RSA publique/privée pour la connexion SSH.Génération d'une paire de clés privées/publiques RSA pour la connexion SSH sur Android
J'ai le code suivant à ce jour pour obtenir les clés:
private void createKeyTest()
{
try
{
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(2048);
KeyPair keyPair = kpg.genKeyPair();
byte[] pri = keyPair.getPrivate().getEncoded();
byte[] pub = keyPair.getPublic().getEncoded();
String privateKey = new String(pri);
String publicKey = new String(pub);
Log.d("SSHKeyManager", "Private Key: " + privateKey);
Log.d("SSHLeyManager", "Public Key: " + publicKey);
}
catch (NoSuchAlgorithmException ex)
{
Log.e("SSHKeyManager", ex.toString());
}
Lorsque j'imprime ce dans Logcat Je reçois des caractères non textuels au hasard quand je me attends à la clé de ressembler à quelque chose comme:
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAm8QDThbuEjAbQxbsdDltL2xdFkQOep3L0wseSJAxmDuvH6yB
9I2fEEmF+dcVoNo2DGCDZMw7EgdFsfQZNF+PzKdZwtvSUTDW/TmMHWux2wYimNU3
jhQ3kfxGmiLgMJHQHWLkESwd06rCr7s1yOnPObdPjTybt7Odbp9bu+E59U10Ri3W
JFxIhi9uYQvpRn4LT/VIfH/KBdglpbD9xBAneVbKFXW7....
-----END RSA PRIVATE KEY-----
Merci pour toute aide que vous pouvez fournir.
Avez-vous pensé que vous obtenez correctement la chaîne contenue dans la section '' --- ---? –
'new String()' sur un tableau d'octets ne vous donnera pas l'encodage en base 64 des octets (ou quel que soit l'encodage utilisé pour ces fichiers RSA). – CommonsWare
Ah oui, j'ai oublié ça, j'ai essayé l'encodage en base 64, mais la chaîne semble toujours beaucoup plus courte que quand elle est générée en utilisant la commande linux ssh-keygen -t rsa sur une boite Linux – Boardy