DERConstructedSet.java
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:2k
源码类别:

CA认证

开发平台:

Java

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