Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.bouncycastle.asn1
Class ASN1Sequence

    java.lang.Object
      org.bouncycastle.asn1.ASN1Object
          org.bouncycastle.asn1.ASN1Primitive
              org.bouncycastle.asn1.ASN1Sequence

All Implemented Interfaces:
  ASN1Encodable, Encodable, Iterable

Direct Known Subclasses:
  BERSequence, DERSequence, DLSequence

public abstract class ASN1Sequence
extends ASN1Primitive
implements Iterable

ASN.1 SEQUENCE and SEQUENCE OF constructs.

DER form is always definite form length fields, while BER support uses indefinite form.

X.690

8: Basic encoding rules

8.9 Encoding of a sequence value

8.9.1 The encoding of a sequence value shall be constructed.

8.9.2 The contents octets shall consist of the complete encoding of one data value from each of the types listed in the ASN.1 definition of the sequence type, in the order of their appearance in the definition, unless the type was referenced with the keyword OPTIONAL or the keyword DEFAULT.

8.9.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. If present, it shall appear in the encoding at the point corresponding to the appearance of the type in the ASN.1 definition.

8.10 Encoding of a sequence-of value

8.10.1 The encoding of a sequence-of value shall be constructed.

8.10.2 The contents octets shall consist of zero, one or more complete encodings of data values from the type listed in the ASN.1 definition.

8.10.3 The order of the encodings of the data values shall be the same as the order of the data values in the sequence-of value to be encoded.

9: Canonical encoding rules

9.1 Length forms

If the encoding is constructed, it shall employ the indefinite-length form. If the encoding is primitive, it shall include the fewest length octets necessary. [Contrast with 8.1.3.2 b).]

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.

Constructor Summary
`protected` | `ASN1Sequence()` Create an empty SEQUENCE
`protected` | `ASN1Sequence(ASN1Encodable element)` Create a SEQUENCE containing one object.
`protected` | `ASN1Sequence(ASN1Encodable[] elements)` Create a SEQUENCE containing an array of objects.
`protected` | `ASN1Sequence(ASN1Encodable element1, ASN1Encodable element2)` Create a SEQUENCE containing two objects.
`protected` | `ASN1Sequence(ASN1EncodableVector elementVector)` Create a SEQUENCE containing a vector of objects.

Method Summary
`static ASN1Sequence` | `getInstance(ASN1TaggedObject taggedObject, boolean declaredExplicit)` Return an ASN1 SEQUENCE from a tagged object.
`static ASN1Sequence` | `getInstance(java.lang.Object obj)` Return an ASN1Sequence from the given object.
`ASN1Encodable` | `getObjectAt(int index)` Return the object at the sequence position indicated by index.
`java.util.Enumeration` | `getObjects()`
`static ASN1Sequence` | `getTagged(ASN1TaggedObject taggedObject, boolean declaredExplicit)`
`int` | `hashCode()`
`java.util.Iterator` | `iterator()` Returns an iterator over a set of elements of type T.
`ASN1SequenceParser` | `parser()`
`int` | `size()` Return the number of objects in this sequence.
`ASN1Encodable[]` | `toArray()`
`java.lang.String` | `toString()`

Methods inherited from class org.bouncycastle.asn1.ASN1Primitive
`encodeTo, encodeTo, equals, equals, equals, fromByteArray, 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

### ASN1Sequence

    protected ASN1Sequence()

  Create an empty SEQUENCE

### ASN1Sequence

    protected ASN1Sequence(ASN1Encodable element)

  Create a SEQUENCE containing one object.

Parameters:
  `element` - the object to be put in the SEQUENCE.

### ASN1Sequence

    protected ASN1Sequence(ASN1Encodable element1,
                           ASN1Encodable element2)

  Create a SEQUENCE containing two objects.

Parameters:
  `element1` - the first object to be put in the SEQUENCE.
  `element2` - the second object to be put in the SEQUENCE.

### ASN1Sequence

    protected ASN1Sequence(ASN1EncodableVector elementVector)

  Create a SEQUENCE containing a vector of objects.

Parameters:
  `elementVector` - the vector of objects to be put in the SEQUENCE.

### ASN1Sequence

    protected ASN1Sequence(ASN1Encodable[] elements)

  Create a SEQUENCE containing an array of objects.

Parameters:
  `elements` - the array of objects to be put in the SEQUENCE.

Method Detail

### getInstance

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

  Return an ASN1Sequence from the given object.

  Parameters:
    `obj` - the object we want converted.
  Returns:
    an ASN1Sequence instance, or null.
  Throws:
    `java.lang.IllegalArgumentException` - if the object cannot be converted.

### getInstance

    public static ASN1Sequence getInstance(ASN1TaggedObject taggedObject,
                                           boolean declaredExplicit)

  Return an ASN1 SEQUENCE from a tagged object. There is a special case here, if an object appears to have been explicitly tagged on reading but we were expecting it to be implicitly tagged in the normal course of events it indicates that we lost the surrounding sequence - so we need to add it back (this will happen if the tagged object is a sequence that contains other sequences). If you are dealing with implicitly tagged sequences you really should be using this method.

  Parameters:
    `taggedObject` - the tagged object.
    `declaredExplicit` - true if the object is meant to be explicitly tagged, false otherwise.
  Returns:
    an ASN1Sequence instance.
  Throws:
    `java.lang.IllegalArgumentException` - if the tagged object cannot be converted.

### getTagged

    public static ASN1Sequence getTagged(ASN1TaggedObject taggedObject,
                                         boolean declaredExplicit)

### toArray

    public ASN1Encodable[] toArray()

### getObjects

    public java.util.Enumeration getObjects()

### parser

    public ASN1SequenceParser parser()

### getObjectAt

    public ASN1Encodable getObjectAt(int index)

  Return the object at the sequence position indicated by index.

  Parameters:
    `index` - the sequence number (starting at zero) of the object
  Returns:
    the object at the sequence position indicated by index.

### size

    public int size()

  Return the number of objects in this sequence.

  Returns:
    the number of objects in this sequence.

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in class `ASN1Primitive`

### toString

    public java.lang.String toString()

### iterator

    public java.util.Iterator iterator()

  Description copied from interface: `Iterable`
  Returns an iterator over a set of elements of type T.

  Specified by:
    `iterator` in interface `Iterable`
  Returns:
    an Iterator.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Bouncy Castle Cryptography Library 1.84
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD