use of java.security.spec.ECFieldFp in project XobotOS by xamarin.
the class EC5Util method convertCurve.
public static ECCurve convertCurve(EllipticCurve ec) {
ECField field = ec.getField();
BigInteger a = ec.getA();
BigInteger b = ec.getB();
if (field instanceof ECFieldFp) {
return new ECCurve.Fp(((ECFieldFp) field).getP(), a, b);
} else {
ECFieldF2m fieldF2m = (ECFieldF2m) field;
int m = fieldF2m.getM();
int[] ks = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b);
}
}
use of java.security.spec.ECFieldFp in project robovm by robovm.
the class EC5Util method convertCurve.
public static ECCurve convertCurve(EllipticCurve ec) {
ECField field = ec.getField();
BigInteger a = ec.getA();
BigInteger b = ec.getB();
if (field instanceof ECFieldFp) {
return new ECCurve.Fp(((ECFieldFp) field).getP(), a, b);
} else {
ECFieldF2m fieldF2m = (ECFieldF2m) field;
int m = fieldF2m.getM();
int[] ks = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());
return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b);
}
}
use of java.security.spec.ECFieldFp in project robovm by robovm.
the class EC5Util method convertCurve.
public static EllipticCurve convertCurve(ECCurve curve, byte[] seed) {
// so at the moment it's set to null. Should probably look at making this configurable
if (curve instanceof ECCurve.Fp) {
return new EllipticCurve(new ECFieldFp(((ECCurve.Fp) curve).getQ()), curve.getA().toBigInteger(), curve.getB().toBigInteger(), null);
} else {
ECCurve.F2m curveF2m = (ECCurve.F2m) curve;
int[] ks;
if (curveF2m.isTrinomial()) {
ks = new int[] { curveF2m.getK1() };
return new EllipticCurve(new ECFieldF2m(curveF2m.getM(), ks), curve.getA().toBigInteger(), curve.getB().toBigInteger(), null);
} else {
ks = new int[] { curveF2m.getK3(), curveF2m.getK2(), curveF2m.getK1() };
return new EllipticCurve(new ECFieldF2m(curveF2m.getM(), ks), curve.getA().toBigInteger(), curve.getB().toBigInteger(), null);
}
}
}
use of java.security.spec.ECFieldFp in project robovm by robovm.
the class EllipticCurveTest method testEllipticCurveECFieldBigIntegerBigInteger03.
/**
* Test #3 for <code>EllipticCurve(ECField, BigInteger, BigInteger)</code>
* constructor<br>
* Assertion: throws <code>IllegalArgumentException</code> if
* <code>a</code> or <code>b</code> is not <code>null</code> and not in
* the <code>field</code><br>
* Test preconditions: pass <code>a</code>, <code>b</code> which are
* not in the <code>field</code> of type <code>ECFieldFp</code><br>
* Expected: must throw <code>IllegalArgumentException</code>
*/
public final void testEllipticCurveECFieldBigIntegerBigInteger03() {
// test case 1 parameters set,
// a is not in field
ECFieldFp f = new ECFieldFp(BigInteger.valueOf(23L));
BigInteger a = BigInteger.valueOf(24L);
BigInteger b = BigInteger.valueOf(19L);
// perform test case 1
try {
new EllipticCurve(f, a, b);
fail("#1: Expected IAE not thrown");
} catch (IllegalArgumentException ok) {
}
// test case 1.1 parameters set,
// a is not in field
f = new ECFieldFp(BigInteger.valueOf(23L));
a = BigInteger.valueOf(23L);
b = BigInteger.valueOf(19L);
// perform test case 1.1
try {
new EllipticCurve(f, a, b);
fail("#1.1: Expected IAE not thrown");
} catch (IllegalArgumentException ok) {
}
// test case 2 parameters set,
// b is not in field
f = new ECFieldFp(BigInteger.valueOf(23L));
a = BigInteger.valueOf(19L);
b = BigInteger.valueOf(24L);
// perform test case 2
try {
new EllipticCurve(f, a, b);
fail("#2: Expected IAE not thrown");
} catch (IllegalArgumentException ok) {
}
// test case 3 parameters set,
// both a and b are not in field
f = new ECFieldFp(BigInteger.valueOf(23L));
a = BigInteger.valueOf(25L);
b = BigInteger.valueOf(240L);
// perform test case 3
try {
new EllipticCurve(f, a, b);
fail("#3: Expected IAE not thrown");
} catch (IllegalArgumentException ok) {
}
}
use of java.security.spec.ECFieldFp in project robovm by robovm.
the class EllipticCurveTest method testGetSeed03.
/**
* Test #3 for <code>getSeed()</code> method<br>
* Assertion: returned array is copied to prevent subsequent modification<br>
* Test preconditions: <code>ECFieldF2m</code> instance
* created using valid parameters<br>
* Expected: repeated method calls must return different refs
*/
public final void testGetSeed03() {
ECFieldFp f = new ECFieldFp(BigInteger.valueOf(23L));
BigInteger a = BigInteger.ONE;
BigInteger b = BigInteger.valueOf(19L);
byte[] seed = new byte[24];
EllipticCurve c = new EllipticCurve(f, a, b, seed);
c.getSeed();
assertNotSame(c.getSeed(), c.getSeed());
}
Aggregations