Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/11/2009, 02:08
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años
Puntos: 9
Crear Key para desencriptar EncryptedPrivateKeyInfo

Hola,

Tengo un archivo .key en formato DER en donde guardo la clave privada para luego firmar documentos digitales. Necesito obtener un PrivateKey desde este archivo. La función que hice es la siguiente:

Código java:
Ver original
  1. public static PrivateKey LoadKey(String keyfilename, String password)
  2.     {
  3.         byte[] keybytes;
  4.         KeyFileReader keyfilereader;
  5.         PrivateKey key = null;
  6.         EncryptedPrivateKeyInfo encryptedkey = null;
  7.  
  8.         try
  9.         {
  10.             keyfilereader = new KeyFileReader(keyfilename);
  11.             keybytes = keyfilereader.GetEncodedBytes();
  12.             if(keybytes != null)
  13.             {
  14.                 encryptedkey = new EncryptedPrivateKeyInfo(keybytes);                
  15.             }
  16.         }
  17.         catch(Exception e)
  18.         {
  19.             System.out.println(e.getMessage());
  20.         }
  21.  
  22.         return key;
  23.     }

KeyFileReader es una clase que me permite obtener los bytes del archivo .key.
encryptedkey tiene un método getKeySpec() que devuelve un PKCS8EncodedKeySpec. Esta clase es la que me sirve para generar el objeto PrivateKey que necesito.
El método getKeySpec() tiene varias sobrecargas, aunque la que me interesa es una que toma un objeto Key como clave para desencriptar. Mi pregunta es como transformar el password (String) en una clase Key para poder pasarsela como argumento a éste método.

Saludos!.
__________________
Add, never Remove