ECCurve.Fp (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.math.ec

## Class ECCurve.Fp

- java.lang.Object
- - org.bouncycastle.math.ec.ECCurve
  - - org.bouncycastle.math.ec.ECCurve.AbstractFp
    - - org.bouncycastle.math.ec.ECCurve.Fp

- Enclosing class:
    ECCurve

      public static class ECCurve.Fp
      extends ECCurve.AbstractFp

  Elliptic curve over Fp

- - ### Nested Class Summary

    - ### Nested classes/interfaces 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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `Fp(java.math.BigInteger q, java.math.BigInteger a, java.math.BigInteger b)` Deprecated. use constructor taking order/cofactor
    `` | `Fp(java.math.BigInteger q, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger order, java.math.BigInteger cofactor)`
    `` | `Fp(java.math.BigInteger q, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger order, java.math.BigInteger cofactor, boolean isInternal)`
    `protected` | `Fp(java.math.BigInteger q, java.math.BigInteger r, ECFieldElement a, ECFieldElement b, java.math.BigInteger order, java.math.BigInteger cofactor)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected ECCurve` | `cloneCurve()`
    `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()`
    `java.math.BigInteger` | `getQ()`
    `ECPoint` | `importPoint(ECPoint p)`
    `boolean` | `supportsCoordinateSystem(int coord)`

    - ### Methods inherited from class org.bouncycastle.math.ec.ECCurve.AbstractFp

      `decompressPoint, isValidFieldElement, randomFieldElement, randomFieldElementMult`

    - ### Methods inherited from class org.bouncycastle.math.ec.ECCurve

      `checkPoint, checkPoints, checkPoints, configure, createCacheSafeLookupTable, createDefaultMultiplier, createPoint, decodePoint, equals, equals, getA, getAffinePointEncodingLength, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, getFieldElementEncodingLength, getMultiplier, getOrder, getPreCompInfo, hashCode, normalizeAll, normalizeAll, precompute, validatePoint`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Fp

          @Deprecated
          public Fp(java.math.BigInteger q,
                                java.math.BigInteger a,
                                java.math.BigInteger b)

      Deprecated. use constructor taking order/cofactor

    - #### Fp

          public Fp(java.math.BigInteger q,
                    java.math.BigInteger a,
                    java.math.BigInteger b,
                    java.math.BigInteger order,
                    java.math.BigInteger cofactor)

    - #### Fp

          public Fp(java.math.BigInteger q,
                    java.math.BigInteger a,
                    java.math.BigInteger b,
                    java.math.BigInteger order,
                    java.math.BigInteger cofactor,
                    boolean isInternal)

    - #### Fp

          protected Fp(java.math.BigInteger q,
                       java.math.BigInteger r,
                       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`

    - #### getQ

          public java.math.BigInteger getQ()

      Overrides:
        `getQ` in class `ECCurve.AbstractFp`

    - #### 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`

    - #### importPoint

          public ECPoint importPoint(ECPoint p)

      Overrides:
        `importPoint` in class `ECCurve`

    - #### getInfinity

          public ECPoint getInfinity()

      Specified by:
        `getInfinity` in class `ECCurve`