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

org.bouncycastle.asn1

## Class DLSet

- java.lang.Object
- - org.bouncycastle.asn1.ASN1Object
  - - org.bouncycastle.asn1.ASN1Primitive
    - - org.bouncycastle.asn1.ASN1Set
      - - org.bouncycastle.asn1.DLSet

- All Implemented Interfaces:
    java.lang.Iterable<ASN1Encodable>, ASN1Encodable, Encodable

      public class DLSet
      extends ASN1Set

  The DLSet encodes ASN.1 SET value without element ordering, and always using definite length form.

  ## X.690

  ### 8: Basic encoding rules

  #### 8.11 Encoding of a set value

  8.11.1 The encoding of a set value shall be constructed

  8.11.2 The contents octets shall consist of the complete encoding of a data value from each of the types listed in the ASN.1 definition of the set type, in an order chosen by the sender, unless the type was referenced with the keyword OPTIONAL or the keyword DEFAULT.

  8.11.3 The encoding of a data value may, but need not, be present for a type which was referenced with the keyword OPTIONAL or the keyword DEFAULT.

  > NOTE — The order of data values in a set value is not significant, and places no constraints on the order during transfer

  ### 9: Canonical encoding rules

  #### 9.3 Set components

  The encodings of the component values of a set value shall appear in an order determined by their tags as specified in 8.6 of ITU-T Rec. X.680 | ISO/IEC 8824-1. Additionally, for the purposes of determining the order in which components are encoded when one or more component is an untagged choice type, each untagged choice type is ordered as though it has a tag equal to that of the smallest tag in that choice type or any untagged choice types nested within.

  ### 10: Distinguished encoding rules

  #### 10.3 Set components

  The encodings of the component values of a set value shall appear in an order determined by their tags as specified in 8.6 of ITU-T Rec. X.680 | ISO/IEC 8824-1.

  > NOTE — Where a component of the set is an untagged choice type, the location of that component in the ordering will depend on the tag of the choice component being encoded.

  ### 11: Restrictions on BER employed by both CER and DER

  #### 11.5 Set and sequence components with default value

  The encoding of a set value or sequence value shall not include an encoding for any component value which is equal to its default value.

- - ### Field Summary

    - ### Fields inherited from class org.bouncycastle.asn1.ASN1Set

      `elements, sortedElements`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DLSet()` create an empty set
    `DLSet(ASN1Encodable element)`
    `DLSet(ASN1Encodable[] elements)` create a set from an array of objects.
    `DLSet(ASN1EncodableVector elementVector)`

  - ### Method Summary

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

      `getInstance, getInstance, getObjectAt, getObjects, getTagged, hashCode, iterator, parser, size, toArray, toString`

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### DLSet

          public DLSet()

      create an empty set

    - #### DLSet

          public DLSet(ASN1Encodable element)

      Parameters:
        `element` - - a single object that makes up the set.

    - #### DLSet

          public DLSet(ASN1EncodableVector elementVector)

      Parameters:
        `elementVector` - - a vector of objects making up the set.

    - #### DLSet

          public DLSet(ASN1Encodable[] elements)

      create a set from an array of objects.