- java.lang.Object
-
- java.security.spec.ECFieldF2m
-
-
Constructor Summary
Constructors Constructor Description ECFieldF2m(int m)Creates an elliptic curve characteristic 2 finite field which has 2^melements with normal basis.ECFieldF2m(int m, int[] ks)Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis.ECFieldF2m(int m, BigInteger rp)Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)Compares this finite field for equality with the specified object.intgetFieldSize()Returns the field size in bits which ismfor this characteristic 2 finite field.intgetM()Returns the valuemof this characteristic 2 finite field.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.BigIntegergetReductionPolynomial()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.inthashCode()Returns a hash code value for this characteristic 2 finite field.
-
-
-
Constructor Detail
-
ECFieldF2m
public ECFieldF2m(int m)
Creates an elliptic curve characteristic 2 finite field which has 2^melements with normal basis.- Parameters:
m- with 2^mbeing the number of elements.- Throws:
IllegalArgumentException- ifmis not positive.
-
ECFieldF2m
public ECFieldF2m(int m, BigInteger rp)Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis. The reduction polynomial for this field is based onrpwhose 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 withm>k>= 1) or a pentanomial (X^m+ X^k3+ X^k2+ X^k1+ 1 withm>k3>k2>k1>= 1).- Parameters:
m- with 2^mbeing the number of elements.rp- the BigInteger whose i-th bit corresponds to the i-th coefficient of the reduction polynomial.- Throws:
NullPointerException- ifrpis null.IllegalArgumentException- ifmis not positive, orrpdoes not represent a valid reduction polynomial.
-
ECFieldF2m
public ECFieldF2m(int m, int[] ks)Creates an elliptic curve characteristic 2 finite field which has 2^melements with polynomial basis. The reduction polynomial for this field is based onkswhose 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 withm>k>= 1) or a pentanomial (X^m+ X^k3+ X^k2+ X^k1+ 1 withm>k3>k2>k1>= 1), soksshould have length 1 or 3.- Parameters:
m- with 2^mbeing 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- ifksis null.IllegalArgumentException- ifmis not positive, or the length ofksis neither 1 nor 3, or values inksare not betweenm-1 and 1 (inclusive) and in descending order.
-
-
Method Detail
-
getFieldSize
public int getFieldSize()
Returns the field size in bits which ismfor this characteristic 2 finite field.- Specified by:
getFieldSizein interfaceECField- Returns:
- the field size in bits.
-
getM
public int getM()
Returns the valuemof this characteristic 2 finite field.- Returns:
mwith 2^mbeing 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:
equalsin classObject- Parameters:
obj- the object to be compared.- Returns:
- true if
objis an instance of ECFieldF2m and bothmand the reduction polynomial match, false otherwise. - See Also:
Object.hashCode()
-
hashCode
public int hashCode()
Returns a hash code value for this characteristic 2 finite field.- Overrides:
hashCodein classObject- Returns:
- a hash code value.
- See Also:
Object.equals(java.lang.Object)
-
-