@Test public void testModPowSecure() { fail("Not yet implemented"); }
protected static BigInteger modPowSecure(final BigInteger base, final BigInteger exponent, final BigInteger modulus) { if (GMP_AVAILABLE) { return exponent.signum() < 0 ? modInverse(Gmp.modPowSecure(base, exponent.negate(), modulus), modulus) : Gmp.modPowSecure(base, exponent, modulus); } else { return modPowerSecureJava(base, exponent, modulus); } }
Exponentiation { protected static BigInteger modPowSecure(final BigInteger base, final BigInteger exponent, final BigInteger modulus) { if (GMP_AVAILABLE) { return exponent.signum() < 0 ? modInverse(Gmp.modPowSecure(base, exponent.negate(), modulus), modulus) : Gmp.modPowSecure(base, exponent, modulus); } else { return modPowerSecureJava(base, exponent, modulus); } } }
Exponentiation { protected static BigInteger modPowSecure(final BigInteger base, final BigInteger exponent, final BigInteger modulus) { if (GMP_AVAILABLE) { return exponent.signum() < 0 ? modInverse(Gmp.modPowSecure(base, exponent.negate(), modulus), modulus) : Gmp.modPowSecure(base, exponent, modulus); } else { return modPowerSecureJava(base, exponent, modulus); } }  }
Exponentiation { protected static BigInteger modPowSecure(final BigInteger base, final BigInteger exponent, final BigInteger modulus) { if (GMP_AVAILABLE) { return exponent.signum() < 0 ? modInverse(Gmp.modPowSecure(base, exponent.negate(), modulus), modulus) : Gmp.modPowSecure(base, exponent, modulus); } else { return modPowerSecureJava(base, exponent, modulus); } }  static BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus); static BigInteger modInverse(final BigInteger a, final BigInteger modulus); }
Exponentiation { protected static BigInteger modPowSecure(final BigInteger base, final BigInteger exponent, final BigInteger modulus) { if (GMP_AVAILABLE) { return exponent.signum() < 0 ? modInverse(Gmp.modPowSecure(base, exponent.negate(), modulus), modulus) : Gmp.modPowSecure(base, exponent, modulus); } else { return modPowerSecureJava(base, exponent, modulus); } }  static BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus); static BigInteger modInverse(final BigInteger a, final BigInteger modulus); static final boolean USE_SECURE_MOD_POW; static final boolean GMP_AVAILABLE; }