ECFieldF2m (Java 2 Platform SE 5.0) (original) (raw)
java.security.spec
Class ECFieldF2m
java.lang.Object
java.security.spec.ECFieldF2m
All Implemented Interfaces:
public class ECFieldF2m
extends Object
implements ECField
This immutable class defines an elliptic curve (EC) characteristic 2 finite field.
Since:
1.5
See Also:
Constructor Summary |
---|
ECFieldF2m(int m) Creates an elliptic curve characteristic 2 finite field which has 2^m elements with normal basis. |
[ECFieldF2m](../../../java/security/spec/ECFieldF2m.html#ECFieldF2m%28int, java.math.BigInteger%29)(int m,BigInteger rp) Creates an elliptic curve characteristic 2 finite field which has 2^m elements with polynomial basis. |
[ECFieldF2m](../../../java/security/spec/ECFieldF2m.html#ECFieldF2m%28int, int[]%29)(int m, int[] ks) Creates an elliptic curve characteristic 2 finite field which has 2^m elements with polynomial basis. |
Method Summary | |
---|---|
boolean | equals(Object obj) Compares this finite field for equality with the specified object. |
int | getFieldSize() Returns the field size in bits which is m for this characteristic 2 finite field. |
int | getM() Returns the value m of 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. |
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 inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, [wait](../../../java/lang/Object.html#wait%28long, int%29) |
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](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- if m
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 correspondes 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 withm
> 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](../../../java/lang/NullPointerException.html "class in java.lang")
- if rp
is null.
[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- if m
is not positive, or rp
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 withm
> 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](../../../java/lang/NullPointerException.html "class in java.lang")
- if ks
is null.
[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")
- 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.
Method Detail |
---|
getFieldSize
public int getFieldSize()
Returns the field size in bits which is m
for this characteristic 2 finite field.
Specified by:
[getFieldSize](../../../java/security/spec/ECField.html#getFieldSize%28%29)
in interface [ECField](../../../java/security/spec/ECField.html "interface in java.security.spec")
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](../../../java/lang/Object.html#equals%28java.lang.Object%29)
in class [Object](../../../java/lang/Object.html "class in java.lang")
Parameters:
obj
- the object to be compared.
Returns:
true if obj
is an instance of ECFieldF2m and both m
and the reduction polynomial match, false otherwise.
See Also:
hashCode
public int hashCode()
Returns a hash code value for this characteristic 2 finite field.
Overrides:
[hashCode](../../../java/lang/Object.html#hashCode%28%29)
in class [Object](../../../java/lang/Object.html "class in java.lang")
Returns:
a hash code value.
See Also:
Object.equals(java.lang.Object), Hashtable
Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.