1 package civitas.util;
2
3 import java.math.BigInteger;
4
5 import civitas.crypto.Constants;
6
7 public interface CivitasBigIntegerInterface extends Constants {
8
9 BigInteger asBigint();
10
11 default boolean isProbablePrime(final int certainty) {
12 return asBigint().isProbablePrime(certainty);
13 }
14
15 default CivitasBigInteger nextProbablePrime() {
16 return new CivitasBigInteger(asBigint().nextProbablePrime());
17 }
18
19 default CivitasBigInteger divide(final CivitasBigInteger q) {
20 return new CivitasBigInteger(asBigint().divide(q.i));
21 }
22
23 default CivitasBigInteger modInverse(final CivitasBigInteger p) {
24 return new CivitasBigInteger(asBigint().modInverse(p.i));
25 }
26
27 default CivitasBigInteger modNegate(final CivitasBigInteger p) {
28 return new CivitasBigInteger(asBigint().negate().mod(p.i));
29 }
30
31 default CivitasBigInteger pow(final int j) {
32 return new CivitasBigInteger(asBigint().pow(j));
33 }
34 }