Generar una PrivateKey

Jorge Avalos
11 de Enero del 2005
Necesito ayuda con lo siguiente:
Tengo una llave privada en una archivo (supuestamente en un formato PEM), con la siguiente estructura:
-----BEGIN RSA PRIVATE KEY-----
mBHm9h/jf0iFkK9................
.......+wWCrao87Y/l64yEuleA==
-----END RSA PRIVATE KEY-----

Necesito saber la manera de convertir esta llave codificada en un objeto PrivateKey de Java.

He estado utilizando el siguiente codigo, pero me da la excepcion: "java.security.spec.InvalidKeySpecException: Unknown key spec"

FileInputStream keyfis = new FileInputStream(new File("c:\llaveRSA.txt"));
byte[] encKey = new byte[keyfis.available()];
keyfis.read(encKey);
keyfis.close();
PKCS8EncodedKeySpec prvspec = new PKCS8EncodedKeySpec(encKey);
KeyFactory factory = KeyFactory.getInstance("RSA");
PrivateKey prvkey = (PrivateKey) factory.generatePrivate( prvspec);

Ojala que alguien me pueda ayudar.
De antemano gracias.

Tigre Negro
11 de Enero del 2005
No he trabajado con ese formato, pero las linea de BEGIN y END no se si esten afectando al momento que lees la llave.

Otra cosa que puedes intentar es leer el archivo con otro flujo.

ObjectInputStream ois=new ObjectInputStream(keyfis);
PrivateKey prvKey=(PrivateKey)ois.readObject();

Saludos

Tigre Negro
11 de Enero del 2005
Como estas guardando la llave que estas intentando lee????r, ahi puede estar el error

Saludos

Jorge Avalos
11 de Enero del 2005
Esta guardada en un xml... solo texto.!