Android アプリケーションに RSA アルゴリズムを実装しようとしています。私はjava.math.BigInteger.modPow()
自分のコンピューター (Windows と Xubuntu) と Raspberry Pi (Debian) で正常に動作する暗号化/復号化の関数を使用しています。私の電話(Android 4.4.4)で同じコードが実行されると、への2回目の呼び出しで次の例外がスローされます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()"
指数とモジュラスを確認しました。どちらも正であるため、ドキュメントはあまり役に立ちません。キーのサイズ (指数とモジュラス) を小さくしても、何も変わりませんでした。残念ながら、ネイティブ関数のソースを見つけることができず、何が起こっているのかわかりません。
なぜこの例外がスローされるのか、またはエラーコードが何を意味するのか分かりますか?