Class EllipticCurve

public class EllipticCurve
extends Object

This immutable class holds the necessary values needed to represent an elliptic curve.

Since:
1.5
See Also:
ECField, ECFieldFp, ECFieldF2m

Constructor Summary

Constructors
Constructor Description
EllipticCurve​(ECField field, BigInteger a, BigInteger b)

Creates an elliptic curve with the specified elliptic field field and the coefficients a and b.

EllipticCurve​(ECField field, BigInteger a, BigInteger b, byte[] seed)

Creates an elliptic curve with the specified elliptic field field, the coefficients a and b, and the seed used for curve generation.

Method Summary

All Methods Instance Methods Concrete Methods
Modifier and Type Method Description
boolean equals​(Object obj)

Compares this elliptic curve for equality with the specified object.

BigInteger getA()

Returns the first coefficient a of the elliptic curve.

BigInteger getB()

Returns the second coefficient b of the elliptic curve.

ECField getField()

Returns the finite field field that this elliptic curve is over.

byte[] getSeed()

Returns the seeding bytes seed used during curve generation.

int hashCode()

Returns a hash code value for this elliptic curve.

Methods declared in class java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

EllipticCurve

public EllipticCurve​(ECField field,
                     BigInteger a,
                     BigInteger b)

Creates an elliptic curve with the specified elliptic field field and the coefficients a and b.

Parameters:
field - the finite field that this elliptic curve is over.
a - the first coefficient of this elliptic curve.
b - the second coefficient of this elliptic curve.
Throws:
NullPointerException - if field, a, or b is null.
IllegalArgumentException - if a or b is not null and not in field.

EllipticCurve

public EllipticCurve​(ECField field,
                     BigInteger a,
                     BigInteger b,
                     byte[] seed)

Creates an elliptic curve with the specified elliptic field field, the coefficients a and b, and the seed used for curve generation.

Parameters:
field - the finite field that this elliptic curve is over.
a - the first coefficient of this elliptic curve.
b - the second coefficient of this elliptic curve.
seed - the bytes used during curve generation for later validation. Contents of this array are copied to protect against subsequent modification.
Throws:
NullPointerException - if field, a, or b is null.
IllegalArgumentException - if a or b is not null and not in field.

Method Detail

getField

public ECField getField()

Returns the finite field field that this elliptic curve is over.

Returns:
the field field that this curve is over.

getA

public BigInteger getA()

Returns the first coefficient a of the elliptic curve.

Returns:
the first coefficient a.

getB

public BigInteger getB()

Returns the second coefficient b of the elliptic curve.

Returns:
the second coefficient b.

getSeed

public byte[] getSeed()

Returns the seeding bytes seed used during curve generation. May be null if not specified.

Returns:
the seeding bytes seed. A new array is returned each time this method is called.

equals

public boolean equals​(Object obj)

Compares this elliptic curve for equality with the specified object.

Overrides:
equals in class Object
Parameters:
obj - the object to be compared.
Returns:
true if obj is an instance of EllipticCurve and the field, A, and B match, false otherwise.
See Also:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Returns a hash code value for this elliptic curve.

Overrides:
hashCode in class Object
Returns:
a hash code value computed from the hash codes of the field, A, and B, as follows:
(field.hashCode() << 6) + (a.hashCode() << 4) + (b.hashCode() << 2)
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)