Я пытаюсь получить ключ из файла pem, используя этот код:
protected boolean configureKey() {
try {
Security.addProvider(new BouncyCastleProvider());
PEMParser reader = new PEMParser(new InputStreamReader(getAssets().open(PUBLIC_KEY_FILE)));
Object obj;
PublicKey publicKey = null;
while (((obj = reader.readObject()) != null) && (publicKey == null)) {
if (obj instanceof SubjectPublicKeyInfo) {
JcaPEMKeyConverter converter = new JcaPEMKeyConverter();
publicKey = converter.getPublicKey((SubjectPublicKeyInfo) obj);
} else {
if (obj instanceof PublicKey) {
publicKey = (PublicKey) obj;
}
}
}
if (publicKey != null) {
return true;
}
return false;
} catch (IOException e) {
return false;
}
}
Этот код работал раньше, но на этот раз он не работает, потому что объект не является экземпляром SubjectPublicKeyInfo или PublicKey, ноX509CertificateHolder.
Имея это в виду, я уверен, что проблема в этом конкретном файле pem (так как этот код работал до чтения ключей), но я не могу понять, почему объект является экземпляром этогоучебный класс.Должен ли он иметь другой формат или структуру?Что мне нужно изменить в файле, чтобы получить экземпляр SubjectPublicKeyInfo?