Generar una PrivateKey
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.
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.
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
Otra cosa que puedes intentar es leer el archivo con otro flujo.
ObjectInputStream ois=new ObjectInputStream(keyfis);
PrivateKey prvKey=(PrivateKey)ois.readObject();
Saludos
Como estas guardando la llave que estas intentando lee????r, ahi puede estar el error
Saludos
Saludos
