Ошибка безопасности Android. Ни один установленный поставщик не поддерживаетAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка безопасности Android. Ни один установленный поставщик не поддерживает

Сообщение Anonymous »

Я использую сертификат для сетевых запросов.

Код: Выделить всё

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")
Теперь у меня есть два BouncyCastleProvider. один встроен
***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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»