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

org.bouncycastle.asn1.x509

## Class MTCCertificationAuthority

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.x509.MTCCertificationAuthority

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class MTCCertificationAuthority
      extends ASN1Object

  ASN.1 structure for the `id-pe-mtcCertificationAuthority` extension defined in Section 5.5 of draft-ietf-plants-merkle-tree-certs:

       MTCCertificationAuthority ::= SEQUENCE {
           logHash   AlgorithmIdentifier{DIGEST-ALGORITHM, {...}},
           sigAlg    AlgorithmIdentifier{SIGNATURE-ALGORITHM, {...}},
           minSerial INTEGER (0..mtcMaxSerial),
           maxSerial INTEGER (0..mtcMaxSerial)
       }

  `logHash` is the hash algorithm used by all issuance logs operated by this CA. `sigAlg` is the CA cosigner's signature algorithm. `minSerial` and `maxSerial` are the inclusive bounds of the cert serial range this CA is authorized for; per Section 6.1 of the draft a serial encodes the log number in its upper 16 bits and the entry index in the lower 48 bits (a 64-bit value), so the range can constrain either.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.math.BigInteger` | `MAX_SERIAL` `mtcMaxSerial` - the largest legal serial, 2^64 - 1 (a serial is the 64-bit composition of a 16-bit log number and a 48-bit entry index).

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MTCCertificationAuthority(AlgorithmIdentifier logHash, AlgorithmIdentifier sigAlg, java.math.BigInteger minSerial, java.math.BigInteger maxSerial)`
    `MTCCertificationAuthority(ASN1ObjectIdentifier logHashOid, ASN1ObjectIdentifier sigAlgOid, java.math.BigInteger minSerial, java.math.BigInteger maxSerial)` Convenience constructor that wraps each algorithm OID in a parameterless `AlgorithmIdentifier`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static MTCCertificationAuthority` | `getInstance(java.lang.Object obj)`
    `AlgorithmIdentifier` | `getLogHash()`
    `java.math.BigInteger` | `getMaxSerial()`
    `java.math.BigInteger` | `getMinSerial()`
    `AlgorithmIdentifier` | `getSigAlg()`
    `ASN1Primitive` | `toASN1Primitive()` Method providing a primitive representation of this object suitable for encoding.

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

- - ### Field Detail

    - #### MAX_SERIAL

          public static final java.math.BigInteger MAX_SERIAL

      `mtcMaxSerial` - the largest legal serial, 2^64 - 1 (a serial is the 64-bit composition of a 16-bit log number and a 48-bit entry index).

  - ### Constructor Detail

    - #### MTCCertificationAuthority

          public MTCCertificationAuthority(ASN1ObjectIdentifier logHashOid,
                                           ASN1ObjectIdentifier sigAlgOid,
                                           java.math.BigInteger minSerial,
                                           java.math.BigInteger maxSerial)

      Convenience constructor that wraps each algorithm OID in a parameterless `AlgorithmIdentifier`. Equivalent to `MTCCertificationAuthority(AlgorithmIdentifier, AlgorithmIdentifier, BigInteger, BigInteger)` with `new AlgorithmIdentifier(logHashOid)` and `new AlgorithmIdentifier(sigAlgOid)`.

    - #### MTCCertificationAuthority

          public MTCCertificationAuthority(AlgorithmIdentifier logHash,
                                           AlgorithmIdentifier sigAlg,
                                           java.math.BigInteger minSerial,
                                           java.math.BigInteger maxSerial)

  - ### Method Detail

    - #### getInstance

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

    - #### getLogHash

          public AlgorithmIdentifier getLogHash()

    - #### getSigAlg

          public AlgorithmIdentifier getSigAlg()

    - #### getMinSerial

          public java.math.BigInteger getMinSerial()

    - #### getMaxSerial

          public java.math.BigInteger getMaxSerial()

    - #### toASN1Primitive

          public ASN1Primitive toASN1Primitive()

      Description copied from class: `ASN1Object`
      Method providing a primitive representation of this object suitable for encoding.
      Specified by:
        `toASN1Primitive` in interface `ASN1Encodable`
      Specified by:
        `toASN1Primitive` in class `ASN1Object`
      Returns:
        a primitive representation of this object.