001 package org.apache.commons.ssl.asn1;
002
003 import java.io.IOException;
004 import java.io.InputStream;
005
006 public class ASN1ObjectParser {
007 private int _baseTag;
008 private int _tagNumber;
009
010 private ASN1StreamParser _aIn;
011
012 protected ASN1ObjectParser(
013 int baseTag,
014 int tagNumber,
015 InputStream contentStream) {
016 _baseTag = baseTag;
017 _tagNumber = tagNumber;
018 _aIn = new ASN1StreamParser(contentStream);
019 }
020
021 /**
022 * Return the tag number for this object.
023 *
024 * @return the tag number.
025 */
026 int getTagNumber() {
027 return _tagNumber;
028 }
029
030 int getBaseTag() {
031 return _baseTag;
032 }
033
034 DEREncodable readObject()
035 throws IOException {
036 return _aIn.readObject();
037 }
038
039 ASN1EncodableVector readVector()
040 throws IllegalStateException {
041 ASN1EncodableVector v = new ASN1EncodableVector();
042 DEREncodable obj;
043
044 try {
045 while ((obj = readObject()) != null) {
046 v.add(obj.getDERObject());
047 }
048 }
049 catch (IOException e) {
050 throw new IllegalStateException(e.getMessage());
051 }
052
053 return v;
054 }
055 }