X9Curve (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.asn1.x9

## Class X9Curve

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.x9.X9Curve

- All Implemented Interfaces:
    ASN1Encodable, X9ObjectIdentifiers, Encodable

      public class X9Curve
      extends ASN1Object
      implements X9ObjectIdentifiers

  ASN.1 def for Elliptic-Curve Curve structure. See X9.62, for further details.

- - ### Field Summary

    - ### Fields inherited from interface org.bouncycastle.asn1.x9.X9ObjectIdentifiers

      `ansi_X9_42, ansi_X9_62, c2onb191v4, c2onb191v5, c2onb239v4, c2onb239v5, c2pnb163v1, c2pnb163v2, c2pnb163v3, c2pnb176w1, c2pnb208w1, c2pnb272w1, c2pnb304w1, c2pnb368w1, c2tnb191v1, c2tnb191v2, c2tnb191v3, c2tnb239v1, c2tnb239v2, c2tnb239v3, c2tnb359v1, c2tnb431r1, characteristic_two_field, cTwoCurve, dhEphem, dhHybrid1, dhHybrid2, dhHybridOneFlow, dhOneFlow, dhpublicnumber, dhSinglePass_cofactorDH_sha1kdf_scheme, dhSinglePass_stdDH_sha1kdf_scheme, dhStatic, ecdsa_with_SHA1, ecdsa_with_SHA2, ecdsa_with_SHA224, ecdsa_with_SHA256, ecdsa_with_SHA384, ecdsa_with_SHA512, ellipticCurve, gnBasis, id_dsa, id_dsa_with_sha1, id_ecPublicKey, id_ecSigType, id_fieldType, id_kdf_kdf2, id_kdf_kdf3, id_publicKeyType, mqv1, mqv2, mqvSinglePass_sha1kdf_scheme, ppBasis, prime_field, prime192v1, prime192v2, prime192v3, prime239v1, prime239v2, prime239v3, prime256v1, primeCurve, tpBasis, x9_42_schemes, x9_44, x9_44_components, x9_63_scheme`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `X9Curve(ECCurve curve)`
    `X9Curve(ECCurve curve, byte[] seed)`
    `X9Curve(X9FieldID fieldID, java.math.BigInteger order, java.math.BigInteger cofactor, ASN1Sequence seq)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ECCurve` | `getCurve()`
    `byte[]` | `getSeed()`
    `boolean` | `hasSeed()`
    `ASN1Primitive` | `toASN1Primitive()` Produce an object suitable for an ASN1OutputStream.

    - ### Methods inherited from class org.bouncycastle.asn1.ASN1Object

      `encodeTo, encodeTo, equals, getEncoded, getEncoded, hasEncodedTagValue, hashCode`

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

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

- - ### Constructor Detail

    - #### X9Curve

          public X9Curve(ECCurve curve)

    - #### X9Curve

          public X9Curve(ECCurve curve,
                         byte[] seed)

    - #### X9Curve

          public X9Curve(X9FieldID fieldID,
                         java.math.BigInteger order,
                         java.math.BigInteger cofactor,
                         ASN1Sequence seq)

  - ### Method Detail

    - #### getCurve

          public ECCurve getCurve()

    - #### getSeed

          public byte[] getSeed()

    - #### hasSeed

          public boolean hasSeed()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Produce an object suitable for an ASN1OutputStream.

            Curve ::= SEQUENCE {
                a               FieldElement,
                b               FieldElement,
                seed            BIT STRING      OPTIONAL
            }

      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a primitive representation of this object.