From 6076bb3b2b153bd8e96c582ccc12a090c8610bed Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 26 May 2015 18:16:55 +0000 Subject: [PATCH] modPowCT requires GMP 5 --- core/java/src/net/i2p/util/NativeBigInteger.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/java/src/net/i2p/util/NativeBigInteger.java b/core/java/src/net/i2p/util/NativeBigInteger.java index 17beea1f3..1600d15e3 100644 --- a/core/java/src/net/i2p/util/NativeBigInteger.java +++ b/core/java/src/net/i2p/util/NativeBigInteger.java @@ -98,6 +98,8 @@ public class NativeBigInteger extends BigInteger { private static boolean _nativeOk; /** is native lib loaded and at least version 3? */ private static boolean _nativeOk3; + /** is native lib loaded and at least version 3, and GMP at least version 5? */ + private static boolean _nativeCTOk; private static int _jbigiVersion; private static String _libGMPVersion = "unknown"; private static String _loadStatus = "uninitialized"; @@ -559,6 +561,7 @@ public class NativeBigInteger extends BigInteger { int min = nativeGMPMinorVersion(); int pat = nativeGMPPatchVersion(); _libGMPVersion = maj + "." + min + "." + pat; + _nativeCTOk = maj >= 5; } catch (Throwable t) { warn("jbigi version " + _jbigiVersion + " but GMP version not available???", t); } @@ -635,10 +638,10 @@ public class NativeBigInteger extends BigInteger { /** * @throws ArithmeticException if m <= 0 - * @since 0.9.18 and libjbigi version 3 + * @since 0.9.18 and libjbigi version 3 and GMP version 5 */ public BigInteger modPowCT(BigInteger exponent, BigInteger m) { - if (_nativeOk3) + if (_nativeCTOk) return new NativeBigInteger(nativeModPowCT(toByteArray(), exponent.toByteArray(), m.toByteArray())); else return modPow(exponent, m);