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

org.bouncycastle.asn1.x9

## Class DomainParameters

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

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class DomainParameters
      extends ASN1Object

  X9.44 Diffie-Hellman domain parameters.

          DomainParameters ::= SEQUENCE {
             p                INTEGER,           -- odd prime, p=jq +1
             g                INTEGER,           -- generator, g
             q                INTEGER,           -- factor of p-1
             j                INTEGER OPTIONAL,  -- subgroup factor, j >= 2
             validationParams  ValidationParams OPTIONAL
          }

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DomainParameters(java.math.BigInteger p, java.math.BigInteger g, java.math.BigInteger q, java.math.BigInteger j, ValidationParams validationParams)` Base constructor - the full domain parameter set.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.math.BigInteger` | `getG()` Return the generator of the multiplicative subgroup of order g.
    `static DomainParameters` | `getInstance(ASN1TaggedObject obj, boolean explicit)` Return a DomainParameters object from the passed in tagged object.
    `static DomainParameters` | `getInstance(java.lang.Object obj)` Return a DomainParameters object from the passed in object.
    `java.math.BigInteger` | `getJ()` Return the value that satisfies the equation p = jq+1 (if present).
    `java.math.BigInteger` | `getP()` Return the prime p defining the Galois field.
    `java.math.BigInteger` | `getQ()` Return q, the prime factor of p - 1
    `ValidationParams` | `getValidationParams()` Return the validation parameters for this set (if present).
    `ASN1Primitive` | `toASN1Primitive()` Return an ASN.1 primitive representation of this object.

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

    - #### DomainParameters

          public DomainParameters(java.math.BigInteger p,
                                  java.math.BigInteger g,
                                  java.math.BigInteger q,
                                  java.math.BigInteger j,
                                  ValidationParams validationParams)

      Base constructor - the full domain parameter set.
      Parameters:
        `p` - the prime p defining the Galois field.
        `g` - the generator of the multiplicative subgroup of order g.
        `q` - specifies the prime factor of p - 1
        `j` - optionally specifies the value that satisfies the equation p = jq+1
        `validationParams` - parameters for validating these domain parameters.

  - ### Method Detail

    - #### getInstance

          public static DomainParameters getInstance(ASN1TaggedObject obj,
                                                     boolean explicit)

      Return a DomainParameters object from the passed in tagged object.
      Parameters:
        `obj` - a tagged object.
        `explicit` - true if the contents of the object is explictly tagged, false otherwise.
      Returns:
        a DomainParameters

    - #### getInstance

          public static DomainParameters getInstance(java.lang.Object obj)

      Return a DomainParameters object from the passed in object.
      Parameters:
        `obj` - an object for conversion or a byte[].
      Returns:
        a DomainParameters

    - #### getP

          public java.math.BigInteger getP()

      Return the prime p defining the Galois field.
      Returns:
        the prime p.

    - #### getG

          public java.math.BigInteger getG()

      Return the generator of the multiplicative subgroup of order g.
      Returns:
        the generator g.

    - #### getQ

          public java.math.BigInteger getQ()

      Return q, the prime factor of p - 1
      Returns:
        q value

    - #### getJ

          public java.math.BigInteger getJ()

      Return the value that satisfies the equation p = jq+1 (if present).
      Returns:
        j value or null.

    - #### getValidationParams

          public ValidationParams getValidationParams()

      Return the validation parameters for this set (if present).
      Returns:
        validation parameters, or null if absent.

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Return an ASN.1 primitive representation of this object.
      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a DERSequence containing the parameter values.