Alguem sabe como usar o pacote “sun.security.tools” para manipular certicados?
Olhei no site da sun e não encontrei nenhum exemplo de como usar …
Alguem sabe como usar o pacote “sun.security.tools” para manipular certicados?
Olhei no site da sun e não encontrei nenhum exemplo de como usar …
É porque não é para usar essas classes, que são não-documentadas e podem ser removidas a qualquer momento. Use o BouncyCastle ( http://www.bouncycastle.org ).
De qualquer maneira, o fonte delas está aqui:
http://www.java2s.com/Open-Source/Java-Document/6.0-JDK-Modules-sun/security/sun.security.tools.htm
Dá pra usar esse BouncyCastle pra assinar um jar?
Ah, explicando a gente se entende. Você pode usar a classe sun.security.tools.KeyTool (de tools.jar) sem problemas, fazendo o seguinte:
a) Carregue a classe sun.security.tools.KeyTool e chame seu método main com os argumentos exatamente como numa linha de comando. (Veja o fonte, é bem fácil).
b) Você tem de tomar um pouco de cuidado, porque em algumas versões do JDK, o método run (que é chamado indiretamente pelo método main) chama System.exit, ou seja, pode derrubar seu programa. Lendo o fonte você pode ver que se houver alguma exceção qualquer, ele chama System.exit (1) (argh).
Se não me engano o Keytool é para gerar a chave de assinatura não é??
Para assinar o jar acho que usa o comando JarSigner…
Olhei nos fontes e lá tem essa classe “JarSigner” que deve ser para esse propósito…
mas aqui no meu java essa classe não aparece… não sei por qual motivo!
creio de não pra assinar pela classe Keytool ou estou enganado?
Hum, tinha feito confusão. É que em um projeto meu eu tinha usado o keytool, não o jarsigner.
Mas o esquema é exatamente o mesmo: use a classe sun.security.tools.JarSigner, método main ou talvez run (dê uma olhada no fonte).
Você não vai ver a tal classe na sua IDE a menos que inclua o arquivo tools.jar no seu projeto.
vlw thingol , consegui fazer do jeito que eu queria graças as suas dicas
vou postar um exemplo bem simples do uso do JarSigner :
import sun.security.tools.JarSigner;
public class main {
public static void main(String args[]) throws Exception {
String[] parameters = new String[6];
parameters[0] = "-keystore";
parameters[1] = "c:\\Chave_da_Assinatura.jks";
parameters[2] = "-storepass";
parameters[3] = "senha da store";
parameters[4] = "c:\\jar_para_assinar.jar";
parameters[5] = "alias_da_chave";
JarSigner.main(parameters);
}
}