Class ECFieldF2m
- java.lang.Object
-
- java.security.spec.ECFieldF2m
- All Implemented Interfaces:
ECField
public class ECFieldF2m extends Object implements ECField
This immutable class defines an elliptic curve (EC) characteristic 2 finite field.
- Since:
- 1.5
- See Also:
ECField
Constructor Summary
Constructor | Description |
---|---|
ECFieldF2m(int m) | Creates an elliptic curve characteristic 2 finite field which has 2^ |
ECFieldF2m(int m,
int[] ks) | Creates an elliptic curve characteristic 2 finite field which has 2^ |
ECFieldF2m(int m,
BigInteger rp) | Creates an elliptic curve characteristic 2 finite field which has 2^ |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
boolean | equals(Object obj) | Compares this finite field for equality with the specified object. |
int | getFieldSize() | Returns the field size in bits which is |
int | getM() | Returns the value |
int[] | getMidTermsOfReductionPolynomial() | Returns an integer array which contains the order of the middle term(s) of the reduction polynomial for polynomial basis or null for normal basis. |
BigInteger | getReductionPolynomial() | Returns a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis. |
int | hashCode() | Returns a hash code value for this characteristic 2 finite field. |
Methods declared in class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Constructor Detail
ECFieldF2m
public ECFieldF2m(int m)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with normal basis.
- Parameters:
-
m
- with 2^m
being the number of elements. - Throws:
-
IllegalArgumentException
- ifm
is not positive.
ECFieldF2m
public ECFieldF2m(int m, BigInteger rp)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with polynomial basis. The reduction polynomial for this field is based on rp
whose i-th bit corresponds to the i-th coefficient of the reduction polynomial.
Note: A valid reduction polynomial is either a trinomial (X^m
+ X^k
+ 1 with m
> k
>= 1) or a pentanomial (X^m
+ X^k3
+ X^k2
+ X^k1
+ 1 with m
> k3
> k2
> k1
>= 1).
- Parameters:
-
m
- with 2^m
being the number of elements. -
rp
- the BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial. - Throws:
-
NullPointerException
- ifrp
is null. -
IllegalArgumentException
- ifm
is not positive, orrp
does not represent a valid reduction polynomial.
ECFieldF2m
public ECFieldF2m(int m, int[] ks)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with polynomial basis. The reduction polynomial for this field is based on ks
whose content contains the order of the middle term(s) of the reduction polynomial. Note: A valid reduction polynomial is either a trinomial (X^m
+ X^k
+ 1 with m
> k
>= 1) or a pentanomial (X^m
+ X^k3
+ X^k2
+ X^k1
+ 1 with m
> k3
> k2
> k1
>= 1), so ks
should have length 1 or 3.
- Parameters:
-
m
- with 2^m
being the number of elements. -
ks
- the order of the middle term(s) of the reduction polynomial. Contents of this array are copied to protect against subsequent modification. - Throws:
-
NullPointerException
- ifks
is null. -
IllegalArgumentException
- ifm
is not positive, or the length ofks
is neither 1 nor 3, or values inks
are not betweenm
-1 and 1 (inclusive) and in descending order.
Method Detail
getFieldSize
public int getFieldSize()
Returns the field size in bits which is m
for this characteristic 2 finite field.
- Specified by:
-
getFieldSize
in interfaceECField
- Returns:
- the field size in bits.
getM
public int getM()
Returns the value m
of this characteristic 2 finite field.
- Returns:
-
m
with 2^m
being the number of elements.
getReductionPolynomial
public BigInteger getReductionPolynomial()
Returns a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis.
- Returns:
- a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis.
getMidTermsOfReductionPolynomial
public int[] getMidTermsOfReductionPolynomial()
Returns an integer array which contains the order of the middle term(s) of the reduction polynomial for polynomial basis or null for normal basis.
- Returns:
- an integer array which contains the order of the middle term(s) of the reduction polynomial for polynomial basis or null for normal basis. A new array is returned each time this method is called.
equals
public boolean equals(Object obj)
Compares this finite field for equality with the specified object.
- Overrides:
-
equals
in classObject
- Parameters:
-
obj
- the object to be compared. - Returns:
- true if
obj
is an instance of ECFieldF2m and bothm
and the reduction polynomial match, false otherwise. - See Also:
-
Object.hashCode()
,HashMap
hashCode
public int hashCode()
Returns a hash code value for this characteristic 2 finite field.
- Overrides:
-
hashCode
in classObject
- Returns:
- a hash code value.
- See Also:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)