ECFieldF2m
public class ECFieldF2m
extends Object
implements ECField
java.lang.Object | |
↳ | java.security.spec.ECFieldF2m |
This immutable class defines an elliptic curve (EC) characteristic 2 finite field.
See also:
Summary
Public constructors | |
---|---|
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^ |
Public methods | |
---|---|
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. |
Inherited methods | |
---|---|
Public constructors
ECFieldF2m
public ECFieldF2m (int m)
Creates an elliptic curve characteristic 2 finite field which has 2^m
elements with normal basis.
Parameters | |
---|---|
m | int : with 2^m being the number of elements. |
Throws | |
---|---|
IllegalArgumentException | if m is not positive. |
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 | int : with 2^m being the number of elements. |
ks | int : the order of the middle term(s) of the reduction polynomial. Contents of this array are copied to protect against subsequent modification. |
Throws | |
---|---|
NullPointerException | if ks is null. |
IllegalArgumentException | ifm is not positive, or the length of ks is neither 1 nor 3, or values in ks are not between m -1 and 1 (inclusive) and in descending order. |
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 | int : with 2^m being the number of elements. |
rp | BigInteger : the BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial. |
Throws | |
---|---|
NullPointerException | if rp is null. |
IllegalArgumentException | if m is not positive, or rp does not represent a valid reduction polynomial. |
Public methods
equals
public boolean equals (Object obj)
Compares this finite field for equality with the specified object.
Parameters | |
---|---|
obj | Object : the object to be compared. |
Returns | |
---|---|
boolean | true if obj is an instance of ECFieldF2m and both m and the reduction polynomial match, false otherwise. |
getFieldSize
public int getFieldSize ()
Returns the field size in bits which is m
for this characteristic 2 finite field.
Returns | |
---|---|
int | the field size in bits. |
getM
public int getM ()
Returns the value m
of this characteristic 2 finite field.
Returns | |
---|---|
int | m with 2^m being the number of elements. |
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 | |
---|---|
int[] | 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. |
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 | |
---|---|
BigInteger | a BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial for polynomial basis or null for normal basis. |
hashCode
public int hashCode ()
Returns a hash code value for this characteristic 2 finite field.
Returns | |
---|---|
int | a hash code value. |