aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2018-03-27 18:55:29 +0200
committerJ08nY2018-03-27 18:55:29 +0200
commit054f9f61f59a7b20ba835abb98d57a9746cafa86 (patch)
treeba676e4da72e7bb435bdd90e52dad61a48bf7b90
parent2d5d9dfa09ab6c06efe347d41de00bfed39ab039 (diff)
downloadECTester-054f9f61f59a7b20ba835abb98d57a9746cafa86.tar.gz
ECTester-054f9f61f59a7b20ba835abb98d57a9746cafa86.tar.zst
ECTester-054f9f61f59a7b20ba835abb98d57a9746cafa86.zip
-rw-r--r--src/cz/crcs/ectester/common/util/ECUtil.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cz/crcs/ectester/common/util/ECUtil.java b/src/cz/crcs/ectester/common/util/ECUtil.java
index 973b813..0979d91 100644
--- a/src/cz/crcs/ectester/common/util/ECUtil.java
+++ b/src/cz/crcs/ectester/common/util/ECUtil.java
@@ -146,16 +146,22 @@ public class ECUtil {
alpha = alpha.add(x.multiply(a));
alpha = alpha.add(b);
+ if(!isResidue(alpha, p)) {
+ throw new IllegalArgumentException();
+ }
+
BigInteger beta = modSqrt(alpha, p);
if (beta.getLowestSetBit() == 0) {
// rightmost bit is one
if (data[0] == 0x02) {
- beta = beta.negate();
+ // yp is 0
+ beta = p.subtract(beta);
}
} else {
// rightmost bit is zero
if (data[0] == 0x03) {
- beta = beta.negate();
+ // yp is 1
+ beta = p.subtract(beta);
}
}