Код: Выделить всё
val keyStore = KeyStore.getInstance("PKCS12")
keyStore.load(caFileInputStream, certPassword.toCharArray())
Код: Выделить всё
error constructing MAC: java.security.InvalidKeyException: No installed provider supports this key: com.android.org.bouncycastle.jcajce.PKCS12Key
Код: Выделить всё
Security.getProviders()
name =BC;
info = BouncyCastle Security Provider v1.68 ;
class = com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
Моя системная среда:
compileSdk 34
targetSdkVersion 34
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
Я пытался добавить классы для proguard вот так
Код: Выделить всё
-keep class java.security.**{ *; }
#-keep class com.android.org.bouncycastle.jcajce.PKCS12Key
-keep class com.android.org.bouncycastle.** { *; }
com.android.org.bouncycastle.jcajce.PKCS12Key
но у существующего поставщика есть путь к классу
p>
com.android.org.bouncycastle.jce.provider.BuncyCastleProvider
Это системная ошибка? Можно ли это исправить с моей стороны?
Я знаю, как заставить это работать, но не уверен, что это решение не создаст новых проблемЯ добавил в проект ссылку на библиотеку Bounce
Код: Выделить всё
implementation("org.bouncycastle:bcprov-jdk15to18:1.74")
***com.android.***org.bouncycastle.jce.provider.BuncyCastleProvider
и еще один из библиотеки
***org.bouncycastle.***jce.provider.BouncyCastleProvider
поскольку я вижу различия между ними:
встроено — поставщик безопасности BouncyCastle v1.68
lib — поставщик безопасности BouncyCastle v1.74
когда я использую BouncyCastleProvider из библиотеки все работает без исключения
Примечание:
Если используете обфускацию, придется добавить-сохранить класс org.bouncycastle.jce.**{*;
для продолжения.
Подробнее здесь: https://stackoverflow.com/questions/783 ... r-supports