Ошибка в парсинге приватного ключа
private byte[] getEncodeKey() {
Key privateKey = null;
try {
byte [] pkcs8EncodedBytes = Base64.decode("***private_key***", Base64.DEFAULT);
KeySpec keySpec = new PKCS8EncodedKeySpec(pkcs8EncodedBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
privateKey = kf.generatePrivate(keySpec); <---- this line call exception
} catch (Exception e) {
e.printStackTrace();
}
return Base64.encode(privateKey.getEncoded(), Base64.DEFAULT);
}
Данный код по задумке из строки с приватным ключом(строка валидная, взята с помощью опции генерации ключа в Firebase) должен парсить массив байт
В коде я указал, какая строка бросает исключение
Ниже приведён лог ошибок
W/System.err: java.security.spec.InvalidKeySpecException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: Error parsing private key
V/FA: Connection attempt already in progress
W/System.err: at com.android.org.conscrypt.OpenSSLKey.getPrivateKey(OpenSSLKey.java:338)
at com.android.org.conscrypt.OpenSSLRSAKeyFactory.engineGeneratePrivate(OpenSSLRSAKeyFactory.java:72)
at java.security.KeyFactory.generatePrivate(KeyFactory.java:399)
at com.nikitafront.schooldiary.activities.CustomActivity.getEncodeKey(CustomActivity.java:224)
at com.nikitafront.schooldiary.activities.CustomActivity.createJWT(CustomActivity.java:153)
at com.nikitafront.schooldiary.activities.CustomActivity.signInWithVK(CustomActivity.java:124)
at com.nikitafront.schooldiary.activities.CustomActivity$5.onLogin(CustomActivity.java:270)
W/System.err: at com.vk.api.sdk.auth.VKAuthManager.onActivityResult(VKAuthManager.kt:75)
at com.vk.api.sdk.VK.onActivityResult(VK.kt:123)
at com.nikitafront.schooldiary.activities.CustomActivity.onActivityResult(CustomActivity.java:279)
at android.app.Activity.dispatchActivityResult(Activity.java:8429)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5377)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5425)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:239)
at android.app.ActivityThread.main(ActivityThread.java:8212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)
W/System.err: Caused by: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: Error parsing private key
at com.android.org.conscrypt.NativeCrypto.EVP_parse_private_key(Native Method)
at com.android.org.conscrypt.OpenSSLKey.getPrivateKey(OpenSSLKey.java:336)
... 22 more