1 package org.gudy.bouncycastle.asn1;
2 
3 import java.io.ByteArrayOutputStream;
4 import java.io.IOException;
5 import java.util.Enumeration;
6 
7 /**
8  * @deprecated use DERSequence.
9  */
10 public class DERConstructedSequence
11     extends ASN1Sequence
12 {
addObject( DEREncodable obj)13     public void addObject(
14         DEREncodable obj)
15     {
16         super.addObject(obj);
17     }
18 
getSize()19     public int getSize()
20     {
21         return size();
22     }
23 
24     /*
25      * A note on the implementation:
26      * <p>
27      * As DER requires the constructed, definite-length model to
28      * be used for structured types, this varies slightly from the
29      * ASN.1 descriptions given. Rather than just outputing SEQUENCE,
30      * we also have to specify CONSTRUCTED, and the objects length.
31      */
encode( DEROutputStream out)32     void encode(
33         DEROutputStream out)
34         throws IOException
35     {
36         ByteArrayOutputStream   bOut = new ByteArrayOutputStream();
37         DEROutputStream         dOut = new DEROutputStream(bOut);
38         Enumeration             e = this.getObjects();
39 
40         while (e.hasMoreElements())
41         {
42             Object    obj = e.nextElement();
43 
44             dOut.writeObject(obj);
45         }
46 
47         dOut.close();
48 
49         byte[]  bytes = bOut.toByteArray();
50 
51         out.writeEncoded(SEQUENCE | CONSTRUCTED, bytes);
52     }
53 }
54