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

org.bouncycastle.asn1

## Class DERExternal

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.ASN1Primitive
    - - org.bouncycastle.asn1.ASN1External
      - - org.bouncycastle.asn1.DERExternal

- All Implemented Interfaces:
    ASN1Encodable, Encodable

      public class DERExternal
      extends ASN1External

  Class representing the DER-type External

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DERExternal(ASN1EncodableVector vector)` Deprecated. Use `fromVector(ASN1EncodableVector)` instead.
    `DERExternal(ASN1ObjectIdentifier directReference, ASN1Integer indirectReference, ASN1Primitive dataValueDescriptor, DERTaggedObject externalData)` Creates a new instance of DERExternal See X.690 for more informations about the meaning of these parameters
    `DERExternal(ASN1ObjectIdentifier directReference, ASN1Integer indirectReference, ASN1Primitive dataValueDescriptor, int encoding, ASN1Primitive externalData)` Creates a new instance of DERExternal.
    `DERExternal(ASN1Sequence sequence)` Construct a DER EXTERNAL object, the input sequence must have exactly two elements on it.
    `DERExternal(DERSequence sequence)` Deprecated. Use `fromSequence(ASN1Sequence)` instead.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static DERExternal` | `fromSequence(ASN1Sequence seq)`
    `static DERExternal` | `fromVector(ASN1EncodableVector vector)`

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

      `getDataValueDescriptor, getDirectReference, getEncoding, getExternalContent, getIndirectReference, getInstance, getInstance, getTagged, hashCode`

    - ### 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, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DERExternal

          @Deprecated
          public DERExternal(ASN1EncodableVector vector)

      Deprecated. Use `fromVector(ASN1EncodableVector)` instead.
      Construct a DER EXTERNAL object, the input encoding vector must have exactly two elements on it.

      Acceptable input formats are:

      - `ASN1ObjectIdentifier` + data `DERTaggedObject` (direct reference form)
      - `ASN1Integer` + data `DERTaggedObject` (indirect reference form)
      - Anything but `DERTaggedObject` + data `DERTaggedObject` (data value form)
      Throws:
        `java.lang.IllegalArgumentException` - if input size is wrong, or input is not an acceptable format

    - #### DERExternal

          public DERExternal(DERSequence sequence)

      Deprecated. Use `fromSequence(ASN1Sequence)` instead.
      Construct a DER EXTERNAL object, the input sequence must have exactly two elements on it.

      Acceptable input formats are:

      - `ASN1ObjectIdentifier` + data `DERTaggedObject` (direct reference form)
      - `ASN1Integer` + data `DERTaggedObject` (indirect reference form)
      - Anything but `DERTaggedObject` + data `DERTaggedObject` (data value form)
      Throws:
        `java.lang.IllegalArgumentException` - if input size is wrong, or input is not an acceptable format

    - #### DERExternal

          public DERExternal(ASN1Sequence sequence)

      Construct a DER EXTERNAL object, the input sequence must have exactly two elements on it.

      Acceptable input formats are:

      - `ASN1ObjectIdentifier` + data `DERTaggedObject` (direct reference form)
      - `ASN1Integer` + data `DERTaggedObject` (indirect reference form)
      - Anything but `DERTaggedObject` + data `DERTaggedObject` (data value form)
      Throws:
        `java.lang.IllegalArgumentException` - if input size is wrong, or input is not an acceptable format

    - #### DERExternal

          public DERExternal(ASN1ObjectIdentifier directReference,
                             ASN1Integer indirectReference,
                             ASN1Primitive dataValueDescriptor,
                             DERTaggedObject externalData)

      Creates a new instance of DERExternal See X.690 for more informations about the meaning of these parameters
      Parameters:
        `directReference` - The direct reference or `null` if not set.
        `indirectReference` - The indirect reference or `null` if not set.
        `dataValueDescriptor` - The data value descriptor or `null` if not set.
        `externalData` - The external data in its encoded form.

    - #### DERExternal

          public DERExternal(ASN1ObjectIdentifier directReference,
                             ASN1Integer indirectReference,
                             ASN1Primitive dataValueDescriptor,
                             int encoding,
                             ASN1Primitive externalData)

      Creates a new instance of DERExternal. See X.690 for more informations about the meaning of these parameters
      Parameters:
        `directReference` - The direct reference or `null` if not set.
        `indirectReference` - The indirect reference or `null` if not set.
        `dataValueDescriptor` - The data value descriptor or `null` if not set.
        `encoding` - The encoding to be used for the external data
        `externalData` - The external data

  - ### Method Detail

    - #### fromSequence

          public static DERExternal fromSequence(ASN1Sequence seq)

    - #### fromVector

          public static DERExternal fromVector(ASN1EncodableVector vector)