Мне удалось извлечь строку личного ключа из файла 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());
}