org.bouncycastle.math.ec.custom.sec

## Class SecP256K1Curve

- java.lang.Object
- - org.bouncycastle.math.ec.ECCurve
  - - org.bouncycastle.math.ec.ECCurve.AbstractFp
    - - org.bouncycastle.math.ec.custom.sec.SecP256K1Curve

-     public class SecP256K1Curve
      extends ECCurve.AbstractFp

- - ### 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
    Modifier and Type | Field and Description
    --- | ---
    `protected SecP256K1Point` | `infinity`
    `static java.math.BigInteger` | `q`

    - ### 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
    Constructor and Description
    `SecP256K1Curve()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected ECCurve` | `cloneCurve()`
    `ECLookupTable` | `createCacheSafeLookupTable(ECPoint[] points, int off, int len)` Create a cache-safe lookup table for the specified sequence of points.
    `protected ECPoint` | `createRawPoint(ECFieldElement x, ECFieldElement y)`
    `protected ECPoint` | `createRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs)`
    `ECFieldElement` | `fromBigInteger(java.math.BigInteger x)`
    `int` | `getFieldElementEncodingLength()`
    `int` | `getFieldSize()`
    `ECPoint` | `getInfinity()`
    `java.math.BigInteger` | `getQ()`
    `ECFieldElement` | `randomFieldElement(java.security.SecureRandom r)`
    `ECFieldElement` | `randomFieldElementMult(java.security.SecureRandom r)`
    `boolean` | `supportsCoordinateSystem(int coord)`

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

      `decompressPoint, isValidFieldElement`

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

      `checkPoint, checkPoints, checkPoints, configure, createDefaultMultiplier, createPoint, decodePoint, equals, equals, getA, getAffinePointEncodingLength, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, 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`

- - ### Field Detail

    - #### q

          public static final java.math.BigInteger q

    - #### infinity

          protected SecP256K1Point infinity

  - ### Constructor Detail

    - #### SecP256K1Curve

          public SecP256K1Curve()

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

    - #### getFieldElementEncodingLength

          public int getFieldElementEncodingLength()

      Overrides:
        `getFieldElementEncodingLength` 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`

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

    - #### randomFieldElement

          public ECFieldElement randomFieldElement(java.security.SecureRandom r)

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

    - #### randomFieldElementMult

          public ECFieldElement randomFieldElementMult(java.security.SecureRandom r)

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