protected ECCurve cloneCurve() { return new SecP224R1Curve(); }
public SecP224R1Curve() { super(q); this.infinity = new SecP224R1Point(this, null, null); this.a = fromBigInteger(new BigInteger(1, Hex.decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"))); this.b = fromBigInteger(new BigInteger(1, Hex.decode("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"))); this.order = new BigInteger(1, Hex.decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D")); this.cofactor = BigInteger.valueOf(1); this.coord = SecP224R1_DEFAULT_COORDS; }
public ECPoint lookup(int index) { int[] x = Nat224.create(), y = Nat224.create(); int pos = 0; for (int i = 0; i < len; ++i) { int MASK = ((i ^ index) - 1) >> 31; for (int j = 0; j < FE_INTS; ++j) { x[j] ^= table[pos + j] & MASK; y[j] ^= table[pos + FE_INTS + j] & MASK; } pos += (FE_INTS * 2); } return createRawPoint(new SecP224R1FieldElement(x), new SecP224R1FieldElement(y), false); } };
public SecP224R1Curve() { super(q); this.infinity = new SecP224R1Point(this, null, null); this.a = fromBigInteger(new BigInteger(1, Hex.decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE"))); this.b = fromBigInteger(new BigInteger(1, Hex.decode("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4"))); this.order = new BigInteger(1, Hex.decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D")); this.cofactor = BigInteger.valueOf(1); this.coord = SecP224R1_DEFAULT_COORDS; }
protected ECCurve cloneCurve() { return new SecP224R1Curve(); }
protected X9ECParameters createParameters() { byte[] S = Hex.decode("BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5"); ECCurve curve = configureCurve(new SecP224R1Curve()); X9ECPoint G = new X9ECPoint(curve, Hex.decode("04" + "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21" + "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34")); return new X9ECParameters(curve, G, curve.getOrder(), curve.getCofactor(), S); } };
protected X9ECParameters createParameters() { byte[] S = Hex.decode("BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5"); ECCurve curve = configureCurve(new SecP224R1Curve()); ECPoint G = curve.decodePoint(Hex.decode("04" + "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21" + "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34")); return new X9ECParameters(curve, G, curve.getOrder(), curve.getCofactor(), S); } };