iai pessual, pesquisando por ai, eu vi um jeito e tentei adaptar para a minha necessidade, porem esta complicado fazer funcionar, fiz o método:
public static String assinar(String certificado, String senha, byte[] textoParaAssinar) throws Exception {
{
//FileInputStream fis = new FileInputStream(NfeUtil.generatePathToSecurity(path));
FileInputStream fis = null;
File file = new File("build\\web\\certificados");
String path = file.getAbsolutePath() + "\\" + certificado;
KeyStore ks = KeyStore.getInstance("PKCS12");
fis = new FileInputStream(path);
ks.load(fis, senha.toCharArray());
Enumeration aliasesEnum = ks.aliases();
String alias = "";
while (aliasesEnum.hasMoreElements()) {
alias = (String) aliasesEnum.nextElement();
if (ks.isKeyEntry(alias)) {
break;
}
}
KeyStore.PrivateKeyEntry keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(alias,
new KeyStore.PasswordProtection(senha.toCharArray()));
PrivateKey p = keyEntry.getPrivateKey();
Signature signer = Signature.getInstance("SHA1withRSA");
signer.initSign(p);
signer.update(textoParaAssinar);
byte[] dadosAssinador = signer.sign();
String res = new String(dadosAssinador);
return res;
}
esse método ira pegar a String a ser assinada e assinar de acordo com o certificado digital (PKCS12)...
ele até funciona, porem a saida é:
¶¸£Â ?Àj¥¿MÚHw¦%õ3ù_¢ãQê?¤¤x¡hºÛ?ôJ?&:ã^÷j|6P×O?H¯íZ?×ë_ÇMI ?7?ê}ÔªÑåø4Fh?»>¾RÓ?Þ®Xô<?IâÏ#.é
esse monte de simbolos, e na hora de incluir no xml da erro pq não é possivel inserir esses caracteres nele.
Alguem ai sabe oq esta errado, se estou no caminho certo....ou qualquer coisa?..rsr
vlw