|
IAIK ECC version 2.18 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Abstract representation of the additive group defined over elliptic curves. That means this interface encapsulates the parameters "a" and "b" of an elliptic curve and defines the group operation. The two parameters a and b are both elements of the undelying finite field. The group operation (point addition) is different for affine/projective coordinates and for prime / binary fields. Use the ECGroupFactory to get a concrete implementation.
Method Summary | |
void |
addPoint(ECPoint a,
ECPoint b)
Computes a += b. |
void |
doublePoint(ECPoint a)
Doubles the specified point. |
FieldElement |
getA()
|
FieldElement |
getB()
|
Field |
getField()
|
java.math.BigInteger |
getOrder()
The order of the group |
void |
invert(ECPoint a)
Inverts (negates) the specified point on the curve. |
boolean |
isPrecomputationEnabled()
Returns true if points can be precomputed to speed up
operations on this curve. |
void |
multiply(ECPoint a,
java.math.BigInteger val)
Scalar multiplication of a point and an integer a *= val. |
void |
multiply2(ECPoint a,
java.math.BigInteger valA,
ECPoint b,
java.math.BigInteger valB)
Simultaneous multiplication of 2 points, as it is used in ECDSA signature verifcation. |
ECPoint |
newInfinityPoint()
Creates the point at infinity. |
ECPoint |
newPoint(Coordinate c)
Creates a new point with the specified coordinates. |
iaik.asn1.ASN1Object |
toASN1Object()
Converts a curve to the following ASN.1 structure:
Curve ::= SEQUENCE {
a FieldElement, -- Elliptic curve coefficient a
b FieldElement, -- Elliptic curve coefficient b
seed BIT STRING OPTIONAL -- !! |
java.lang.String |
toString()
Converts the elliptic curve into a human readable form. |
boolean |
useAffine()
Subclasses indicate whether they use affine or projective coordinates. |
Method Detail |
public void addPoint(ECPoint a, ECPoint b)
a
- the point a, to which b will be addedb
- the point b, which is added to a.public void doublePoint(ECPoint a)
a
- the point on this curvepublic FieldElement getA()
public FieldElement getB()
public Field getField()
public java.math.BigInteger getOrder()
null
if the order is unknown.public void invert(ECPoint a)
a
- the point to be inverted.public boolean isPrecomputationEnabled()
true
if points can be precomputed to speed up
operations on this curve.
public void multiply(ECPoint a, java.math.BigInteger val)
a
- the point and resultval
- the factorpublic void multiply2(ECPoint a, java.math.BigInteger valA, ECPoint b, java.math.BigInteger valB)
a
- the point and result of the first multiplicationvalA
- the factor to compute a = a * valAb
- the point and result of the second multiplicationvalB
- the factor to compute b = b * valBpublic ECPoint newInfinityPoint()
public ECPoint newPoint(Coordinate c)
If the coordinates are of the wrong type (e.g. projective over an elliptic curve group using affine coordinates) they will be converted.
c
- the coordinates.
public iaik.asn1.ASN1Object toASN1Object()
Curve ::= SEQUENCE {
a FieldElement, -- Elliptic curve coefficient a
b FieldElement, -- Elliptic curve coefficient b
seed BIT STRING OPTIONAL -- !! NOT SPECIFIED !!
}
- Returns:
- the ASN.1 structure.
public java.lang.String toString()
public boolean useAffine()
|
IAIK ECC version 2.18 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |