AI-generated Key Takeaways
-
EllipticCurveis an immutable class representing an elliptic curve with its field and coefficients. -
It provides constructors to create curves with specified field, coefficients, and optional seed for generation.
-
Methods allow access to the curve's field, coefficients, and seed, along with equality comparison and hash code generation.
-
This class is fundamental for elliptic curve cryptography operations in Java security.
-
See
ECField,ECFieldFp, andECFieldF2mfor related field types.
This immutable class holds the necessary values needed to represent an elliptic curve.
See Also
Public Constructor Summary
|
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. |
Public Method Summary
| boolean | |
| 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.
|
Inherited Method Summary
Public Constructors
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.
|
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.
|
Public Methods
public boolean equals (Object obj)
Compares this elliptic curve for equality with the specified object.
Parameters
| obj | the object to be compared. |
|---|
Returns
- true if
objis an instance of EllipticCurve and the field, A, and B match, false otherwise.
public BigInteger getA ()
Returns the first coefficient a of the
elliptic curve.
Returns
- the first coefficient
a.
public BigInteger getB ()
Returns the second coefficient b of the
elliptic curve.
Returns
- the second coefficient
b.
public ECField getField ()
Returns the finite field field that this
elliptic curve is over.
Returns
- the field
fieldthat this curve is over.
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.
public int hashCode ()
Returns a hash code value for this elliptic curve.
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)