У меня есть требование прочитать открытый ключ с помощью 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);
}
И вот исключение:
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)