diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224K1FieldElement.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224K1FieldElement.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224K1FieldElement.java b/bcprov/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224K1FieldElement.java index 2093a061..e4cb310f 100644 --- a/bcprov/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224K1FieldElement.java +++ b/bcprov/src/main/java/org/bouncycastle/math/ec/custom/sec/SecP224K1FieldElement.java @@ -3,13 +3,14 @@ package org.bouncycastle.math.ec.custom.sec; import java.math.BigInteger; import org.bouncycastle.math.ec.ECFieldElement; -import org.bouncycastle.math.raw.Mod; import org.bouncycastle.math.raw.Nat224; import org.bouncycastle.util.Arrays; +import org.bouncycastle.util.encoders.Hex; public class SecP224K1FieldElement extends ECFieldElement.AbstractFp { - public static final BigInteger Q = SecP224K1Curve.q; + public static final BigInteger Q = new BigInteger(1, + Hex.decodeStrict("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D")); // Calculated as ECConstants.TWO.modPow(Q.shiftRight(2), Q) private static final int[] PRECOMP_POW2 = new int[]{ 0x33bfd202, 0xdcfad133, 0x2287624a, 0xc3811ba8, @@ -99,7 +100,7 @@ public class SecP224K1FieldElement extends ECFieldElement.AbstractFp { // return multiply(b.invert()); int[] z = Nat224.create(); - Mod.invert(SecP224K1Field.P, ((SecP224K1FieldElement)b).x, z); + SecP224K1Field.inv(((SecP224K1FieldElement)b).x, z); SecP224K1Field.multiply(z, x, z); return new SecP224K1FieldElement(z); } @@ -122,7 +123,7 @@ public class SecP224K1FieldElement extends ECFieldElement.AbstractFp { // return new SecP224K1FieldElement(toBigInteger().modInverse(Q)); int[] z = Nat224.create(); - Mod.invert(SecP224K1Field.P, x, z); + SecP224K1Field.inv(x, z); return new SecP224K1FieldElement(z); } @@ -139,7 +140,7 @@ public class SecP224K1FieldElement extends ECFieldElement.AbstractFp * First, raise this element to the exponent 2^221 - 2^29 - 2^9 - 2^8 - 2^6 - 2^4 - 2^1 (i.e. m + 1) * * Breaking up the exponent's binary representation into "repunits", we get: - * { 191 1s } { 1 0s } { 19 1s } { 2 0s } { 1 1s } { 1 0s} { 1 1s } { 1 0s} { 3 1s } { 1 0s} + * { 191 1s } { 1 0s } { 19 1s } { 2 0s } { 1 1s } { 1 0s } { 1 1s } { 1 0s } { 3 1s } { 1 0s } * * Therefore we need an addition chain containing 1, 3, 19, 191 (the lengths of the repunits) * We use: [1], 2, [3], 4, 8, 11, [19], 23, 42, 84, 107, [191] |