Android retun объект Private Key из строки личного ключа - PullRequest
0 голосов
/ 20 апреля 2020

Мне удалось извлечь строку личного ключа из файла p12, теперь я хочу использовать эту строку частного ключа и получить объект частного ключа. Но я получаю

java .security.spe c .InvalidKeySpecException: com. android .org.conscrypt.OpenSSLX509CertificateFactory $ ParsingException: Ошибка синтаксического анализа закрытого ключа

подробное сообщение = com. android .org.conscrypt.OpenSSLX509CertificateFactory $ ParsingException: ошибка синтаксического анализа закрытого ключа

String PRIVATE_KEY = "MIIFHDBOBgkqhkiG9w0BBGAQ0WG0Q0Q0W0Q0Q0Q0Q0Q0Q0Q0Q0Q0Q0Q0Q00Q0Q0Q0Q0Q0Q0Q0Q0Q0Q0B0Q0W0Q0Q0W0Q0Q0WQ0Q0WQ0Q0WQ0Q0D0RF0WBQQQQ0WQ0Q0WQ0BQQ0WQ0BQ1 ------------------------ Пример строки закрытого ключа = --------------------- ---------> ui + d8gXYt7fBX9jham8WZsSzuVEWq xZsIZCje68Mjx + VQT + c / Bg == ";

StringBuilder pkcs8Lines = new StringBuilder();
            BufferedReader rdr = new BufferedReader(new StringReader(PRIVATE_KEY));
            String line;
            try {
                while ((line = rdr.readLine()) != null) {
                    pkcs8Lines.append(line);
                }
            } catch (IOException io) {
                Log.e("---> ", io.getMessage());
            }
            String pkcs8Pem = pkcs8Lines.toString();
            byte[] pkcs8EncodedBytes = Base64.decode(pkcs8Pem, Base64.DEFAULT);

            // extract the private key

            PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(pkcs8EncodedBytes);
            KeyFactory kf = null;
            try {
                kf = KeyFactory.getInstance("RSA");
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
            PrivateKey privKey = null;
            try {
                privKey = kf.generatePrivate(keySpec);
            } catch (InvalidKeySpecException e) {
                e.printStackTrace();
            }
            System.out.println(privKey);
            Log.e("private--->", privKey.toString());
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...