mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-11-29 15:52:08 +01:00
Improve ElGamal validation by refraining from biginteger for loop variable
This commit is contained in:
parent
bfbaa30e4c
commit
6a5c6c5509
1 changed files with 5 additions and 4 deletions
|
@ -265,14 +265,15 @@ public class PublicKeyParameterValidationUtil {
|
|||
|
||||
// check g^i mod p != 1 for i < threshold
|
||||
BigInteger res = g;
|
||||
BigInteger i = BigInteger.valueOf(1);
|
||||
BigInteger threshold = BigInteger.valueOf(2).shiftLeft(17);
|
||||
while (i.compareTo(threshold) < 0) {
|
||||
// 262144
|
||||
int threshold = 2 << 17;
|
||||
int i = 1;
|
||||
while (i < threshold) {
|
||||
res = res.multiply(g).mod(p);
|
||||
if (res.equals(one)) {
|
||||
return false;
|
||||
}
|
||||
i = i.add(one);
|
||||
i++;
|
||||
}
|
||||
|
||||
// blinded exponentiation to check y = g^(r*(p-1)+x) mod p
|
||||
|
|
Loading…
Reference in a new issue