2012-07-26 38 views
6

Tengo un requisito para leer una clave pública utilizando java y analizarla, para comprobar su validez, exponente, módulo o si es válida o no. Intenté el siguiente código y tuve problemas. ¿Puedes ayudarme a encontrar una solución para este problema?analizar y leer una clave pública en Java

public static void getPublicKey(String key) throws Exception { 

key = key.replaceAll("-----BEGIN SSH2 PUBLIC KEY-----", ""); 
key = key.replaceAll("-----END SSH2 PUBLIC KEY-----", ""); 
KeyFactory kFactory = KeyFactory.getInstance("RSA", new BouncyCastleProvider()); 
byte pub_llave[] = new BASE64Decoder().decodeBuffer(key) ; 
X509EncodedKeySpec spec = new X509EncodedKeySpec(pub_llave); 
PublicKey pubkey = (PublicKey) kFactory.generatePublic(spec); 
} 

Y aquí es la excepción:

java.lang.IllegalArgumentException: unknown object in getInstance: org.bouncycastle.asn1.DERApplicationSpecific 
    at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source) 
    at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source) 
    at org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance(Unknown Source) 
+0

¿Qué problemas tienes? cualquier error? – Tomer

+0

@ ftom2 - Sí. A continuación se muestra la traza excepción - java.lang.IllegalArgumentException: objeto desconocido en getInstance: org.bouncycastle.asn1.DERApplicationSpecific \t en org.bouncycastle.asn1.ASN1Sequence.getInstance (origen desconocido) \t en org.bouncycastle.asn1.ASN1Sequence .getInstance (Fuente desconocida) \t en org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance (Fuente desconocida) – Sirish

+0

No publique código en los comentarios, solo edite su pregunta y agréguela. – Tomer

Respuesta

Cuestiones relacionadas