1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.bouncycastle.asn1; 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Enumeration; 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class BERSet 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project extends DERSet 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{ 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * create an empty sequence 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public BERSet() 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * create a set containing one object 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public BERSet( 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project DEREncodable obj) 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(obj); 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param v - a vector of objects making up the set. 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public BERSet( 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project DEREncodableVector v) 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(v, false); 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param v - a vector of objects making up the set. 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project BERSet( 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project DEREncodableVector v, 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean needsSorting) 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(v, needsSorting); 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project void encode( 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project DEROutputStream out) 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (out instanceof ASN1OutputStream || out instanceof BEROutputStream) 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.write(SET | CONSTRUCTED); 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.write(0x80); 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Enumeration e = getObjects(); 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.writeObject(e.nextElement()); 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.write(0x00); 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.write(0x00); 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project else 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super.encode(out); 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 70