Android 애플리케이션에 RSA 알고리즘을 구현하려고합니다. 내 컴퓨터 (Windows 및 Xubuntu) 및 내 Raspberry Pi (데비안)에서 잘 작동하는 en/decryption에 java.math.BigInteger.modPow()
함수를 사용하고 있습니다. 다음과 같은 예외가 2 호출에 발생하는 동일한 코드가 내 전화 (안드로이드 4.4.4)에서 실행되는 경우 modPow()
에 : 모두 문서는 '아무튼 그래서 긍정적 :Android BigInteger ArithmeticException
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()"
나는 지수 및 계수를 확인 정말 도움이 안돼. 키 (지수 및 모듈러스)의 크기를 줄이면 아무 것도 변경되지 않았습니다. 불행하게도 나는 원시 함수에 대한 소스를 찾을 수 없었고, 어떤 일이 벌어지고 있을지 모른다고 생각합니다.
이 예외가 throw 된 이유나 오류 코드의 의미를 알고 있습니까?
호기심에서 벗어나서 Android의 이전 버전 (예 : 4.2.2)을 사용해보세요. 4.4 및 많은 버그가 많이 변경되었습니다. –
기본 openssl 네이티브 코드의 오류처럼 보입니다. 이것은 안드로이드 버그입니다. –
SpongyCastle을 사용하고 계십니까? – EpicPandaForce