[RESOLVIDO] Java KeyStore JKS - Como adicionar e ler a partir do Package

1 resposta
C

Olá.
Estou a fazer um trabalho com encriptação e tudo funciona bem, só que estou a ler o arquivo JKS a partir de um
determinado caminho do disco. Mas o ideal era esse arquivo ser distribuido junto com a aplicação, sem que eu tivesse
que me preocupar onde ele está e se existe ou não. Queria juntar esse arquivo ao meu package ou numa classe, não sei,
e ler a partir daí, ou alguma ideia melhor ?

Já juntei o arquivo ao package mas não sei como carrega-lo. Algo do genero como faço com as imagens :
ImageIcon image1 = new ImageIcon(getClass().getResource("/imagens/Barra.png"));

String txt = “2010-05-18;2010-05-18T11:22:19;FAC 001/14;3.12;”;

try {
     File cert = new File("C:/RSA/Certificate.jks");    <------ QUERIA ALTERAR AQUI 

     String alias = "xxx";
     String pwd = "xxx";

     PrivateKey privateKey = getPrivateKeyFromFile( cert, alias, pwd );
     PublicKey publicKey = getPublicKeyFromFile( cert, alias, pwd );

     byte[] txtAssinado = createSignature( privateKey, txt.getBytes() );


    System.out.println( txt2Base64( txtAssinado ) );


     if( verifySignature( publicKey, txt.getBytes(), txtAssinado ) ) {
         System.out.println("Assinatura OK!");
     } else {
         System.out.println("Assinatura NOT OK!");
     }

 } catch( Exception e ) {
     e.printStackTrace();
 }

Obrigado pela atenção.

1 Resposta

C

Afinal assim funciona :

ClassLoader cl = getClass().getClassLoader();
     URL url = cl.getResource("global/Certificate.jks");

     File cert = new File( url.getFile() );

Como estava a dar um erro de Excepção:

java.io.FileNotFoundException:

Pensei que não funcionava, mas o problema é devido aos espaços (%20) no caminho do ficheiro :

/C:/Documents%20and%20Settings/CARLOS/jbproject/jDx/classes/global/Certificate.jks

Bastou acrescentar :

String path = url.getFile();
              path = path.replaceAll("%20"," ");
     File cert = new File( path );

E tá resolvido.

Obrigado.

Criado 26 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 1
Participantes 1