diff options
| author | J08nY | 2018-03-27 18:55:29 +0200 |
|---|---|---|
| committer | J08nY | 2018-03-27 18:55:29 +0200 |
| commit | 054f9f61f59a7b20ba835abb98d57a9746cafa86 (patch) | |
| tree | ba676e4da72e7bb435bdd90e52dad61a48bf7b90 | |
| parent | 2d5d9dfa09ab6c06efe347d41de00bfed39ab039 (diff) | |
| download | ECTester-054f9f61f59a7b20ba835abb98d57a9746cafa86.tar.gz ECTester-054f9f61f59a7b20ba835abb98d57a9746cafa86.tar.zst ECTester-054f9f61f59a7b20ba835abb98d57a9746cafa86.zip | |
| -rw-r--r-- | src/cz/crcs/ectester/common/util/ECUtil.java | 10 |
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); } } |
