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

org.bouncycastle.math.ec

## Class ECCurve.AbstractFp

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

- Direct Known Subclasses:
    Curve25519, ECCurve.Fp, SecP128R1Curve, SecP160K1Curve, SecP160R1Curve, SecP160R2Curve, SecP192K1Curve, SecP192R1Curve, SecP224K1Curve, SecP224R1Curve, SecP256K1Curve, SecP256R1Curve, SecP384R1Curve, SecP521R1Curve, SM2P256V1Curve
  Enclosing class:
    ECCurve

      public abstract static class ECCurve.AbstractFp
      extends ECCurve

- - ### 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
    --- | ---
    `protected` | `AbstractFp(java.math.BigInteger q)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected ECPoint` | `decompressPoint(int yTilde, java.math.BigInteger X1)`
    `java.math.BigInteger` | `getQ()`
    `boolean` | `isValidFieldElement(java.math.BigInteger x)`
    `ECFieldElement` | `randomFieldElement(java.security.SecureRandom r)`
    `ECFieldElement` | `randomFieldElementMult(java.security.SecureRandom r)`

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

      `checkPoint, checkPoints, checkPoints, cloneCurve, configure, createCacheSafeLookupTable, createDefaultMultiplier, createPoint, createRawPoint, createRawPoint, decodePoint, equals, equals, fromBigInteger, getA, getAffinePointEncodingLength, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, getFieldElementEncodingLength, getFieldSize, getInfinity, getMultiplier, getOrder, getPreCompInfo, hashCode, importPoint, normalizeAll, normalizeAll, precompute, supportsCoordinateSystem, validatePoint`

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

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

- - ### Constructor Detail

    - #### AbstractFp

          protected AbstractFp(java.math.BigInteger q)

  - ### Method Detail

    - #### getQ

          public java.math.BigInteger getQ()

    - #### isValidFieldElement

          public boolean isValidFieldElement(java.math.BigInteger x)

      Specified by:
        `isValidFieldElement` in class `ECCurve`

    - #### randomFieldElement

          public ECFieldElement randomFieldElement(java.security.SecureRandom r)

      Specified by:
        `randomFieldElement` in class `ECCurve`

    - #### randomFieldElementMult

          public ECFieldElement randomFieldElementMult(java.security.SecureRandom r)

      Specified by:
        `randomFieldElementMult` in class `ECCurve`

    - #### decompressPoint

          protected ECPoint decompressPoint(int yTilde,
                                            java.math.BigInteger X1)

      Specified by:
        `decompressPoint` in class `ECCurve`