Я пытаюсь реализовать RSA-алгоритм в приложении для Android. Я использую функцию java.math.BigInteger.modPow()
для en-/decryption, которая отлично работает для моего компьютера (Windows и Xubuntu) и моей малины Pi (также Debian).
Когда тот же код выполняется на моем телефоне (Android 4.4.4), на второй вызов modPow()
:
java.jang.ArithmeticException: error:0306B06B:bignum routines:BN_div:not initialized
at java.math.NativeBN.BN_mod_exp(NativeMethod)
at java.math.BigInt.modExp(BigInt.java:327)
at java.math.BigInteger.modPow(BigInteger.java:997)
at "where I call java.math.BigInteger.modPow()"
Я проверил экспоненту и модуль: оба они положительные, поэтому документация действительно не помогает. Уменьшение размера ключа (показатель и модуль) также ничего не изменило. К сожалению, я не мог найти источник для нативной функции и не знаю, что может происходить.
У вас есть идея, почему это исключение может быть выброшено или что означает код ошибки?