Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.math.ec
Class ECCurve.F2m

    java.lang.Object
      org.bouncycastle.math.ec.ECCurve
          org.bouncycastle.math.ec.ECCurve.AbstractF2m
              org.bouncycastle.math.ec.ECCurve.F2m

Enclosing class:
  ECCurve

public static class ECCurve.F2m
extends ECCurve.AbstractF2m

Elliptic curves over F2m. The Weierstrass equation is given by y 2 + xy = x 3 + ax 2 + b.

Nested Class Summary

Nested classes inherited from class org.bouncycastle.math.ec.ECCurve
`ECCurve.AbstractF2m, ECCurve.AbstractFp, ECCurve.Config, ECCurve.F2m, ECCurve.Fp`

Field Summary

Fields inherited from class org.bouncycastle.math.ec.ECCurve
`a, b, cofactor, coord, COORD_AFFINE, COORD_HOMOGENEOUS, COORD_JACOBIAN, COORD_JACOBIAN_CHUDNOVSKY, COORD_JACOBIAN_MODIFIED, COORD_LAMBDA_AFFINE, COORD_LAMBDA_PROJECTIVE, COORD_SKEWED, endomorphism, field, multiplier, order`

Constructor Summary
`` | `ECCurve.F2m(int m, int k, java.math.BigInteger a, java.math.BigInteger b)` Deprecated. use constructor taking order/cofactor
`` | `ECCurve.F2m(int m, int k, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger order, java.math.BigInteger cofactor)` Constructor for Trinomial Polynomial Basis (TPB).
`` | `ECCurve.F2m(int m, int k1, int k2, int k3, java.math.BigInteger a, java.math.BigInteger b)` Deprecated. use constructor taking order/cofactor
`` | `ECCurve.F2m(int m, int k1, int k2, int k3, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger order, java.math.BigInteger cofactor)` Constructor for Pentanomial Polynomial Basis (PPB).
`protected` | `ECCurve.F2m(int m, int k1, int k2, int k3, ECFieldElement a, ECFieldElement b, java.math.BigInteger order, java.math.BigInteger cofactor)`

Method Summary
`protected ECCurve` | `cloneCurve()`
`ECLookupTable` | `createCacheSafeLookupTable(ECPoint[] points, int off, int len)` Create a cache-safe lookup table for the specified sequence of points.
`protected ECMultiplier` | `createDefaultMultiplier()`
`protected ECPoint` | `createRawPoint(ECFieldElement x, ECFieldElement y)`
`protected ECPoint` | `createRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs)`
`ECFieldElement` | `fromBigInteger(java.math.BigInteger x)`
`int` | `getFieldSize()`
`ECPoint` | `getInfinity()`
`int` | `getK1()`
`int` | `getK2()`
`int` | `getK3()`
`int` | `getM()`
`boolean` | `isTrinomial()` Return true if curve uses a Trinomial basis.
`boolean` | `supportsCoordinateSystem(int coord)`

Methods inherited from class org.bouncycastle.math.ec.ECCurve.AbstractF2m
`createPoint, decompressPoint, inverse, isKoblitz, isValidFieldElement, randomFieldElement, randomFieldElementMult, solveQuadraticEquation`

Methods inherited from class org.bouncycastle.math.ec.ECCurve
`checkPoint, checkPoints, checkPoints, configure, decodePoint, equals, equals, getA, getAffinePointEncodingLength, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, getFieldElementEncodingLength, getMultiplier, getOrder, getPreCompInfo, hashCode, importPoint, normalizeAll, normalizeAll, precompute, validatePoint`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ECCurve.F2m

    public ECCurve.F2m(int m,
                       int k,
                       java.math.BigInteger a,
                       java.math.BigInteger b)

  Deprecated. use constructor taking order/cofactor

  Constructor for Trinomial Polynomial Basis (TPB).

Parameters:
  `m` - The exponent m of F 2 m.
  `k` - The integer k where x m + x k + 1 represents the reduction polynomial f(z).
  `a` - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
  `b` - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.

### ECCurve.F2m

    public ECCurve.F2m(int m,
                       int k,
                       java.math.BigInteger a,
                       java.math.BigInteger b,
                       java.math.BigInteger order,
                       java.math.BigInteger cofactor)

  Constructor for Trinomial Polynomial Basis (TPB).

Parameters:
  `m` - The exponent m of F 2 m.
  `k` - The integer k where x m + x k + 1 represents the reduction polynomial f(z).
  `a` - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
  `b` - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
  `order` - The order of the main subgroup of the elliptic curve.
  `cofactor` - The cofactor of the elliptic curve, i.e. #E a(F 2 m) = h * n.

### ECCurve.F2m

    public ECCurve.F2m(int m,
                       int k1,
                       int k2,
                       int k3,
                       java.math.BigInteger a,
                       java.math.BigInteger b)

  Deprecated. use constructor taking order/cofactor

  Constructor for Pentanomial Polynomial Basis (PPB).

Parameters:
  `m` - The exponent m of F 2 m.
  `k1` - The integer k1 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
  `k2` - The integer k2 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
  `k3` - The integer k3 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
  `a` - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
  `b` - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.

### ECCurve.F2m

    public ECCurve.F2m(int m,
                       int k1,
                       int k2,
                       int k3,
                       java.math.BigInteger a,
                       java.math.BigInteger b,
                       java.math.BigInteger order,
                       java.math.BigInteger cofactor)

  Constructor for Pentanomial Polynomial Basis (PPB).

Parameters:
  `m` - The exponent m of F 2 m.
  `k1` - The integer k1 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
  `k2` - The integer k2 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
  `k3` - The integer k3 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
  `a` - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
  `b` - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
  `order` - The order of the main subgroup of the elliptic curve.
  `cofactor` - The cofactor of the elliptic curve, i.e. #E a(F 2 m) = h * n.

### ECCurve.F2m

    protected ECCurve.F2m(int m,
                          int k1,
                          int k2,
                          int k3,
                          ECFieldElement a,
                          ECFieldElement b,
                          java.math.BigInteger order,
                          java.math.BigInteger cofactor)

Method Detail

### cloneCurve

    protected ECCurve cloneCurve()

  Specified by:
    `cloneCurve` in class `ECCurve`

### supportsCoordinateSystem

    public boolean supportsCoordinateSystem(int coord)

  Overrides:
    `supportsCoordinateSystem` in class `ECCurve`

### createDefaultMultiplier

    protected ECMultiplier createDefaultMultiplier()

  Overrides:
    `createDefaultMultiplier` in class `ECCurve`

### getFieldSize

    public int getFieldSize()

  Specified by:
    `getFieldSize` in class `ECCurve`

### fromBigInteger

    public ECFieldElement fromBigInteger(java.math.BigInteger x)

  Specified by:
    `fromBigInteger` in class `ECCurve`

### createRawPoint

    protected ECPoint createRawPoint(ECFieldElement x,
                                     ECFieldElement y)

  Specified by:
    `createRawPoint` in class `ECCurve`

### createRawPoint

    protected ECPoint createRawPoint(ECFieldElement x,
                                     ECFieldElement y,
                                     ECFieldElement[] zs)

  Specified by:
    `createRawPoint` in class `ECCurve`

### getInfinity

    public ECPoint getInfinity()

  Specified by:
    `getInfinity` in class `ECCurve`

### getM

    public int getM()

### isTrinomial

    public boolean isTrinomial()

  Return true if curve uses a Trinomial basis.

  Returns:
    true if curve Trinomial, false otherwise.

### getK1

    public int getK1()

### getK2

    public int getK2()

### getK3

    public int getK3()

### createCacheSafeLookupTable

    public ECLookupTable createCacheSafeLookupTable(ECPoint[] points,
                                                    int off,
                                                    int len)

  Description copied from class: `ECCurve`
  Create a cache-safe lookup table for the specified sequence of points. All the points MUST belong to this `ECCurve` instance, and MUST already be normalized.

  Overrides:
    `createCacheSafeLookupTable` in class `ECCurve`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD