public abstract class ASN1Sequence extends ASN1Primitive
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.Modifier | Constructor and Description |
---|---|
protected |
ASN1Sequence()
Create an empty sequence
|
protected |
ASN1Sequence(ASN1Encodable obj)
Create a sequence containing one object
|
protected |
ASN1Sequence(ASN1Encodable[] array)
Create a sequence containing a vector of objects.
|
protected |
ASN1Sequence(ASN1EncodableVector v)
Create a sequence containing a vector of objects.
|
Modifier and Type | Method and Description |
---|---|
(package private) boolean |
asn1Equals(ASN1Primitive o) |
(package private) abstract void |
encode(ASN1OutputStream out) |
static ASN1Sequence |
getInstance(ASN1TaggedObject obj,
boolean explicit)
Return an ASN1 sequence from a tagged object.
|
static ASN1Sequence |
getInstance(Object obj)
Return an ASN1Sequence from the given object.
|
private ASN1Encodable |
getNext(Enumeration e) |
ASN1Encodable |
getObjectAt(int index)
Return the object at the sequence position indicated by index.
|
Enumeration |
getObjects() |
int |
hashCode() |
(package private) boolean |
isConstructed() |
ASN1SequenceParser |
parser() |
int |
size()
Return the number of objects in this sequence.
|
ASN1Encodable[] |
toArray() |
(package private) ASN1Primitive |
toDERObject()
Change current SEQUENCE object to be encoded as
DERSequence . |
(package private) ASN1Primitive |
toDLObject()
Change current SEQUENCE object to be encoded as
DLSequence . |
String |
toString() |
encodedLength, equals, fromByteArray, toASN1Primitive
getEncoded, getEncoded, hasEncodedTagValue, toASN1Object
protected ASN1Sequence()
protected ASN1Sequence(ASN1Encodable obj)
obj
- the object to be put in the SEQUENCE.protected ASN1Sequence(ASN1EncodableVector v)
v
- the vector of objects to be put in the SEQUENCEprotected ASN1Sequence(ASN1Encodable[] array)
public static ASN1Sequence getInstance(Object obj)
obj
- the object we want converted.IllegalArgumentException
- if the object cannot be converted.public static ASN1Sequence getInstance(ASN1TaggedObject obj, boolean explicit)
obj
- the tagged object.explicit
- true if the object is meant to be explicitly tagged,
false otherwise.IllegalArgumentException
- if the tagged object cannot
be converted.public ASN1Encodable[] toArray()
public Enumeration getObjects()
public ASN1SequenceParser parser()
public ASN1Encodable getObjectAt(int index)
index
- the sequence number (starting at zero) of the objectpublic int size()
public int hashCode()
hashCode
in class ASN1Primitive
boolean asn1Equals(ASN1Primitive o)
asn1Equals
in class ASN1Primitive
private ASN1Encodable getNext(Enumeration e)
ASN1Primitive toDERObject()
DERSequence
.
This is part of Distinguished Encoding Rules form serialization.toDERObject
in class ASN1Primitive
ASN1Primitive toDLObject()
DLSequence
.
This is part of Direct Length form serialization.toDLObject
in class ASN1Primitive
boolean isConstructed()
isConstructed
in class ASN1Primitive
abstract void encode(ASN1OutputStream out) throws IOException
encode
in class ASN1Primitive
IOException