001 package org.apache.commons.ssl.asn1;
002
003 import java.io.ByteArrayOutputStream;
004 import java.io.IOException;
005 import java.io.InputStream;
006
007 public class BEROctetStringParser
008 implements ASN1OctetStringParser {
009 private ASN1ObjectParser _parser;
010
011 protected BEROctetStringParser(
012 ASN1ObjectParser parser) {
013 _parser = parser;
014 }
015
016 public InputStream getOctetStream() {
017 return new ConstructedOctetStream(_parser);
018 }
019
020 public DERObject getDERObject() {
021 ByteArrayOutputStream bOut = new ByteArrayOutputStream();
022 InputStream in = this.getOctetStream();
023 int ch;
024
025 try {
026 while ((ch = in.read()) >= 0) {
027 bOut.write(ch);
028 }
029 }
030 catch (IOException e) {
031 throw new IllegalStateException("IOException converting stream to byte array: " + e.getMessage());
032 }
033
034 return new BERConstructedOctetString(bOut.toByteArray());
035 }
036 }