Pessoal,
Tenho um método para retornar um objeto PublicKey, o código do método está logo abaixo:
public PublicKey getChavePublica(String pathArquivo) throws IOException,
NoSuchAlgorithmException, InvalidKeySpecException {
Security.addProvider(new BouncyCastleProvider());
InputStream stream = this.getClass().getResourceAsStream(
"/" + pathArquivo);
byte[] encodedKey = new byte[stream.available()];
stream.read(encodedKey);
stream.close();
ByteArrayInputStream byteArray = new ByteArrayInputStream(encodedKey);
ASN1InputStream ais = new ASN1InputStream(byteArray);
ASN1Sequence sequence = (ASN1Sequence) ais.readObject();
RSAPublicKeyStructure rsaPubStructure = new RSAPublicKeyStructure(
sequence);
RSAPublicKeySpec rsaSpec = new RSAPublicKeySpec(
rsaPubStructure.getModulus(),
rsaPubStructure.getPublicExponent());
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey chavePublica = keyFactory.generatePublic(rsaSpec);
return chavePublica;
}
Porém quando eu estou usando esse método está lançando a seguinte exception:
[color=red]Exception in thread “main” java.lang.IllegalArgumentException: illegal object in getInstance: org.bouncycastle.asn1.DLSequence[/color]
Alguém já passou por esse problema?