Получение ключа из файла pem - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь получить ключ из файла 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?

...