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 SummaryConstructors 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 SummaryModifier 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 Details- 
ECFieldF2mpublic 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- if- mis not positive.
 
- 
ECFieldF2mCreates 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- if- rpis null.
- IllegalArgumentException- if- mis not positive, or- rpdoes not represent a valid reduction polynomial.
 
- 
ECFieldF2mpublic 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- if- ksis null.
- IllegalArgumentException- if- mis not positive, or the length of- ksis neither 1 nor 3, or values in- ksare not between- m-1 and 1 (inclusive) and in descending order.
 
 
- 
- 
Method Details- 
getFieldSizepublic int getFieldSize()Returns the field size in bits which ismfor this characteristic 2 finite field.- Specified by:
- getFieldSizein interface- ECField
- Returns:
- the field size in bits.
 
- 
getMpublic int getM()Returns the valuemof this characteristic 2 finite field.- Returns:
- mwith 2^- mbeing the number of elements.
 
- 
getReductionPolynomialReturns 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.
 
- 
getMidTermsOfReductionPolynomialpublic 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.
 
- 
equalsCompares this finite field for equality with the specified object.- Overrides:
- equalsin class- Object
- 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(),- HashMap
 
- 
hashCodepublic int hashCode()Returns a hash code value for this characteristic 2 finite field.- Overrides:
- hashCodein class- Object
- Returns:
- a hash code value.
- See Also:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
 
-