2012-07-26 22 views
6

Genel bir anahtarı java kullanarak okumak ve ayrıştırmak, geçerliliğini, üssünü, modülünü veya geçerli olup olmadığını denetlemek için bir gereksinimim var. Aşağıdaki kodu denedim ve sorunları yaşıyorum. Bu problem için bir çözüm bulmama yardımcı olabilir misiniz? Burada java'da ortak bir anahtarı okuyup okuyun

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); 
} 

Ve

istisnadır:

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

Hangi sorunları yaşıyorsunuz? herhangi bir hata? – Tomer

+0

@ ftom2 - Evet. Aşağıda istisna izidir - java.lang.IllegalArgumentException: getInstance bilinmeyen nesne: org.bouncycastle.asn1.ASN1Sequence.getInstance (Bilinmeyen Kaynak) de org.bouncycastle.asn1.DERApplicationSpecific \t org.bouncycastle.asn1.ASN1Sequence de \t .getInstance (Bilinmeyen Kaynak) \t org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance (Bilinmeyen Kaynak) – Sirish

+0

Lütfen yorumlarda kod yayınlamayın, sadece sorunuzu düzenleyin ve ekleyin. – Tomer

cevap

2

SSH tuşları X.509 tuşları değildir, böylece (bu şekilde) çalışamaz. SSH anahtarlarını ayrıştırmanın bir yolunu gösterir.