2 votes

Comment puis-je lire les clés RSA en Java ?

J'essaie de lire les fichiers de clés publiques et privées RSA en Java.

Ma clé publique et privée RSA est générée avec PuttyGen (SSH-2 RSA, 1024 bits).

Le code que j'utilise pour lire le fichier est le suivant :

//public key
pubkeyBytes = getBytesFromFile(new File(pubKeyfileName));
KeySpec pubSpec = new X509EncodedKeySpec(pubkeyBytes);
RSAPublicKey pubKey =(RSAPublicKey) rsakeyFactory.generatePublic(pubSpec);

//private key
privkeyBytes = getBytesFromFile(new File(privKeyfileName));
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(privkeyBytes);
PrivateKey privKey = rsakeyFactory.generatePrivate(privSpec);

Il lance :

java.security.InvalidKeyException: invalid key format
    at sun.security.x509.X509Key.decode(Unknown Source)

6voto

AngerClown Points 3389

Putty utilise son propre format de clé. Vous devez exporter la clé Putty au format OpenSSH - voir Comment convertir les paires de clés SSH générées à l'aide de PuttyGen(Windows) en paires de clés utilisées par ssh-agent et KeyChain(Linux) .

Ensuite, vous devez convertir la clé OpenSSH au format pkcs8 - voir Comment charger une clé privée RSA à partir d'un fichier . La version Cygwin d'openssh fonctionnera parfaitement pour cela ; il n'est pas nécessaire de trouver un système Unix pour faire tourner openssh .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X