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    }