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

org.bouncycastle.asn1

## Class ASN1ObjectIdentifier

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.ASN1Primitive
    - - org.bouncycastle.asn1.ASN1ObjectIdentifier

- All Implemented Interfaces:
    ASN1Encodable, Encodable
  Direct Known Subclasses:
    PolicyQualifierId

      public class ASN1ObjectIdentifier
      extends ASN1Primitive

  Class representing the ASN.1 OBJECT IDENTIFIER type.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ASN1ObjectIdentifier(java.lang.String identifier)` Create an OID based on the passed in String.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ASN1ObjectIdentifier` | `branch(java.lang.String branchID)` Return an OID that creates a branch under the current one.
    `static ASN1ObjectIdentifier` | `fromContents(byte[] contents)`
    `java.lang.String` | `getId()` Return the OID as a string.
    `static ASN1ObjectIdentifier` | `getInstance(ASN1TaggedObject taggedObject, boolean declaredExplicit)` Return an OBJECT IDENTIFIER from a tagged object.
    `static ASN1ObjectIdentifier` | `getInstance(java.lang.Object obj)` Return an OID from the passed in object
    `static ASN1ObjectIdentifier` | `getTagged(ASN1TaggedObject taggedObject, boolean declaredExplicit)`
    `int` | `hashCode()`
    `ASN1ObjectIdentifier` | `intern()` Intern will return a reference to a pooled version of this object, unless it is not present in which case intern will add it.
    `boolean` | `on(ASN1ObjectIdentifier stem)` Return true if this oid is an extension of the passed in branch - stem.
    `java.lang.String` | `toString()`
    `static ASN1ObjectIdentifier` | `tryFromID(java.lang.String identifier)`

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

      `encodeTo, encodeTo, equals, equals, equals, fromByteArray, fromStream, toASN1Primitive`

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

      `getEncoded, getEncoded, hasEncodedTagValue`

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

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

- - ### Constructor Detail

    - #### ASN1ObjectIdentifier

          public ASN1ObjectIdentifier(java.lang.String identifier)

      Create an OID based on the passed in String.
      Parameters:
        `identifier` - a string representation of an OID.

  - ### Method Detail

    - #### fromContents

          public static ASN1ObjectIdentifier fromContents(byte[] contents)

    - #### getInstance

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

      Return an OID from the passed in object
      Parameters:
        `obj` - an ASN1ObjectIdentifier or an object that can be converted into one.
      Returns:
        an ASN1ObjectIdentifier instance, or null.
      Throws:
        `java.lang.IllegalArgumentException` - if the object cannot be converted.

    - #### getInstance

          public static ASN1ObjectIdentifier getInstance(ASN1TaggedObject taggedObject,
                                                         boolean declaredExplicit)

      Return an OBJECT IDENTIFIER from a tagged object.
      Parameters:
        `taggedObject` - the tagged object holding the object we want
        `declaredExplicit` - true if the object is meant to be explicitly tagged false otherwise.
      Returns:
        an ASN1ObjectIdentifier instance, or null.
      Throws:
        `java.lang.IllegalArgumentException` - if the tagged object cannot be converted.

    - #### getTagged

          public static ASN1ObjectIdentifier getTagged(ASN1TaggedObject taggedObject,
                                                       boolean declaredExplicit)

    - #### tryFromID

          public static ASN1ObjectIdentifier tryFromID(java.lang.String identifier)

    - #### branch

          public ASN1ObjectIdentifier branch(java.lang.String branchID)

      Return an OID that creates a branch under the current one.
      Parameters:
        `branchID` - node numbers for the new branch.
      Returns:
        the OID for the new created branch.

    - #### getId

          public java.lang.String getId()

      Return the OID as a string.
      Returns:
        the string representation of the OID carried by this object.

    - #### on

          public boolean on(ASN1ObjectIdentifier stem)

      Return true if this oid is an extension of the passed in branch - stem.
      Parameters:
        `stem` - the arc or branch that is a possible parent.
      Returns:
        true if the branch is on the passed in stem, false otherwise.

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `ASN1Primitive`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### intern

          public ASN1ObjectIdentifier intern()

      Intern will return a reference to a pooled version of this object, unless it is not present in which case intern will add it.

      The pool is also used by the ASN.1 parsers to limit the number of duplicated OID objects in circulation.

      Returns:
        a reference to the identifier in the pool.