Pegue essa string (que está em hexadecimal), converta-a a em um array de bytes.
Estou supondo que essa chave pública seja RSA e esteja em formato ASN.1 (DER) e que obedeça ao padrão PKCS#9. Se for isso, então você terá de passar o array de bytes para o construtor de X509EncodedKeySpec. Com esse objeto X509EncodedKeySpec, acho que você pode obter uma KeyFactory com KeyFactory.getInstance (“RSA”), e a seguir, com essa KeyFactory, gerar uma PublicKey com generatePublic.
(O exemplo, em KeyFactory, usa o algoritmo DSA, não o RSA, mas o espírito é o mesmo.
Está paresentando um erro na última linha, o que está faltando para realizar a conversão?
T
thingol
Cadê o “new”? Cuidado com a falta de atenção. Código de criptografia e assinatura digital é bem chatinho mesmo e você deve prestar muita atenção ao que está fazendo.
Eu sei que o KeyFactory não aceita RSA, gostaria de saber se alguém sabe a classe que substitua o KeyFactory para acitar o RSA. Isso é muito importante, pois estamos desenvolvendo aqui na empresa a Assinatura digital tipo EAD de acordo com o Ato/Cotepe
T
thingol
Use o BouncyCastle ( http://www.bouncycastle.org ) e leia o livro do David Hook que lhe indiquei. Encomende o livro já - deve haver alguma verba no seu projeto para isso, não? - e peça entrega expressa; não consigo lhe explicar tudo que é necessário para fazer sua aplicação funcionar.
R
ricardoluizv
Eu ainda não sei ler muito bem inglês, não existe uma versão deste livro (David Hook) em português? Na universidade onde estudo tem um livro de criptografia, vou pegar hoje de noite. Mas gostaria de saber se não existe uma forma de fazer utilizando a API do Java mesmo, a única coisa que estou precisando até agora é passar os valores em Hexdeximal para a classe PrivateKey? O reste eu já tenho pronto, a função MD5 e etc…
Nesta linha ’ passinatura = cifra.doFinal(Md5Byte)’ retorna uma exceção, não sei o que está ocasionando isso, gostaria de saber se falta mais alguma implementação para esse meu método?