diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-02-28 12:58:49 +0400 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-02-28 12:58:49 +0400 |
commit | ed2c838ccae77cd64fac5f498f00c2eb51fcc19a (patch) | |
tree | a37d2db65e18497c5ea67b680c7833deb1456464 /core/src/main/java/org | |
parent | 22595b8753e327ed0264656d4e05ecbe623c04e7 (diff) |
Avoid a few negations in sqrt()
Diffstat (limited to 'core/src/main/java/org')
-rw-r--r-- | core/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224R1FieldElement.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/core/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224R1FieldElement.java b/core/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224R1FieldElement.java index 23a4ee82..b2a3b7cb 100644 --- a/core/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224R1FieldElement.java +++ b/core/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224R1FieldElement.java @@ -187,12 +187,11 @@ public class SecP224R1FieldElement extends ECFieldElement return Q.hashCode() ^ Arrays.hashCode(x, 0, 7); } - private static void RM(int[] c, int[] d0, int[] e0, int[] d1, int[] e1, int[] f) + private static void RM(int[] nc, int[] d0, int[] e0, int[] d1, int[] e1, int[] f) { int[] t = Nat224.create(); SecP224R1Field.multiply(e1, e0, t); - SecP224R1Field.multiply(t, c, t); - SecP224R1Field.negate(t, t); + SecP224R1Field.multiply(t, nc, t); SecP224R1Field.multiply(d1, d0, f); SecP224R1Field.add(f, t, f); SecP224R1Field.multiply(d1, e0, t); @@ -200,13 +199,15 @@ public class SecP224R1FieldElement extends ECFieldElement SecP224R1Field.multiply(e1, d0, e1); SecP224R1Field.add(e1, t, e1); SecP224R1Field.square(e1, f); - SecP224R1Field.multiply(f, c, f); - SecP224R1Field.negate(f, f); + SecP224R1Field.multiply(f, nc, f); } private static void RP(int[] c, int[] d1, int[] e1, int[] f) { - SecP224R1Field.negate(c, f); + int[] nc = Nat224.create(); + SecP224R1Field.negate(c, nc); + + Nat224.copy(nc, f); int[] d0 = Nat224.create(); int[] e0 = Nat224.create(); @@ -222,7 +223,7 @@ public class SecP224R1FieldElement extends ECFieldElement RS(d1, e1, f); } - RM(c, d0, e0, d1, e1, f); + RM(nc, d0, e0, d1, e1, f); } } |