Olá pessoal,
Vi um artigo, no próprio forum, sobre assinatura digital, tentei rodar um pequeno
exemplo aqui, mas dá um erro, e n vi no tutorial falando dessa possibilidade.
[code]
public static void main(String[] args) throws Exception {
File f = new File("/opt/assinaturadigital/orion.jks");
getPrivateKeyFromFile(f, “orion”, “orion2”);
}
public static PrivateKey getPrivateKeyFromFile( File cert, String alias, String password ) throws Exception {
KeyStore ks = KeyStore.getInstance ( "JKS" );
char[] pwd = "orion2".toCharArray();
InputStream is = new FileInputStream( cert );
ks.load( is, pwd );
is.close();
Key key = ks.getKey(alias, pwd);
if( key instanceof PrivateKey ) {
System.out.println("passou");
return (PrivateKey) key;
}
return null;
}[/code]
O erro ocorre aqui:
Key key = ks.getKey(alias, pwd);
Segue abaixo o erro:
[quote]Exception in thread “main” java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(KeyProtector.java:311)
at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:121)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:38)
at java.security.KeyStore.getKey(KeyStore.java:763)
at assinaturadigital.Main.getPrivateKeyFromFile(Main.java:37)
at assinaturadigital.Main.main(Main.java:28)
Java Result: 1[/quote]
Adianto q n é prob de senha nem de permissão da pasta/arquivo, uso linux, e estão com permissões totais.
Alguém?
Grato,