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

org.bouncycastle.asn1.x509

## Class TBSCertificateLogEntry

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

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class TBSCertificateLogEntry
      extends ASN1Object

  Represents the ASN.1 structure TBSCertificateLogEntry.

  TBSCertificateLogEntry ::= SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, issuer Name, validity Validity, subject Name, subjectPublicKeyAlgorithm AlgorithmIdentifier, subjectPublicKeyInfoHash OCTET STRING, issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL, subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, extensions [3] EXPLICIT Extensions OPTIONAL }

  This structure is similar to the TBSCertificate defined in `TBSCertificate`, but replaces the SubjectPublicKeyInfo with a hash of the SubjectPublicKeyInfo.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TBSCertificateLogEntry(ASN1Integer version, X500Name issuer, Validity validity, X500Name subject, AlgorithmIdentifier subjectPublicKeyAlgorithm, ASN1OctetString subjectPublicKeyInfoHash, ASN1BitString issuerUniqueID, ASN1BitString subjectUniqueID, Extensions extensions)`
    `TBSCertificateLogEntry(TBSCertificate tbsCert, byte[] subjectPublicKeyInfoHash)` Convenience constructor that mirrors the per-entry fields of an existing `TBSCertificate`, substituting the SubjectPublicKeyInfo with the supplied hash.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Extensions` | `getExtensions()`
    `static TBSCertificateLogEntry` | `getInstance(java.lang.Object obj)`
    `X500Name` | `getIssuer()`
    `ASN1BitString` | `getIssuerUniqueID()`
    `X500Name` | `getSubject()`
    `AlgorithmIdentifier` | `getSubjectPublicKeyAlgorithm()`
    `ASN1OctetString` | `getSubjectPublicKeyInfoHash()`
    `ASN1BitString` | `getSubjectUniqueID()`
    `Validity` | `getValidity()`
    `ASN1Integer` | `getVersion()`
    `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`

- - ### Constructor Detail

    - #### TBSCertificateLogEntry

          public TBSCertificateLogEntry(TBSCertificate tbsCert,
                                        byte[] subjectPublicKeyInfoHash)

      Convenience constructor that mirrors the per-entry fields of an existing `TBSCertificate`, substituting the SubjectPublicKeyInfo with the supplied hash. Version, issuer, validity, subject, the public-key algorithm, unique IDs and extensions are copied from `tbsCert`; the serial number and outer signature algorithm carried by the TBSCertificate are intentionally not represented here.
      Parameters:
        `tbsCert` - TBSCertificate to copy the shared fields from.
        `subjectPublicKeyInfoHash` - hash of the encoded SubjectPublicKeyInfo.

    - #### TBSCertificateLogEntry

          public TBSCertificateLogEntry(ASN1Integer version,
                                        X500Name issuer,
                                        Validity validity,
                                        X500Name subject,
                                        AlgorithmIdentifier subjectPublicKeyAlgorithm,
                                        ASN1OctetString subjectPublicKeyInfoHash,
                                        ASN1BitString issuerUniqueID,
                                        ASN1BitString subjectUniqueID,
                                        Extensions extensions)

  - ### Method Detail

    - #### getInstance

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

    - #### getVersion

          public ASN1Integer getVersion()

    - #### getIssuer

          public X500Name getIssuer()

    - #### getValidity

          public Validity getValidity()

    - #### getSubject

          public X500Name getSubject()

    - #### getSubjectPublicKeyAlgorithm

          public AlgorithmIdentifier getSubjectPublicKeyAlgorithm()

    - #### getSubjectPublicKeyInfoHash

          public ASN1OctetString getSubjectPublicKeyInfoHash()

    - #### getIssuerUniqueID

          public ASN1BitString getIssuerUniqueID()

    - #### getSubjectUniqueID

          public ASN1BitString getSubjectUniqueID()

    - #### getExtensions

          public Extensions getExtensions()

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