2012-07-26 17 views
6

Ho il requisito di leggere una chiave pubblica utilizzando java e analizzarlo, per verificarne la validità, l'esponente, il modulo o se è valido o meno. Ho provato il codice qui sotto, e avendo problemi. Potete per favore aiutarmi a trovare una soluzione per questo problema?analizza e legge una chiave pubblica in 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); 
} 

E qui è l'eccezione:

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

che problemi stai avendo? qualche errore? – Tomer

+0

@ ftom2 - Sì. Qui di seguito è la traccia un'eccezione - java.lang.IllegalArgumentException: sconosciuto oggetto in getInstance: org.bouncycastle.asn1.DERApplicationSpecific \t a org.bouncycastle.asn1.ASN1Sequence.getInstance (fonte sconosciuta) \t a org.bouncycastle.asn1.ASN1Sequence .getInstance (fonte sconosciuta) \t all'indirizzo org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance (fonte sconosciuta) – Sirish

+0

Si prega di non inserire il codice nei commenti, basta modificare la domanda e aggiungerla. – Tomer

risposta

Problemi correlati