001package org.apache.commons.ssl.org.bouncycastle.asn1;
002
003import java.io.IOException;
004import java.io.InputStream;
005
006import org.bouncycastle.util.io.Streams;
007
008public class BEROctetStringParser
009    implements ASN1OctetStringParser
010{
011    private ASN1StreamParser _parser;
012
013    BEROctetStringParser(
014        ASN1StreamParser parser)
015    {
016        _parser = parser;
017    }
018
019    public InputStream getOctetStream()
020    {
021        return new ConstructedOctetStream(_parser);
022    }
023
024    public ASN1Primitive getLoadedObject()
025        throws IOException
026    {
027        return new BEROctetString(Streams.readAll(getOctetStream()));
028    }
029
030    public ASN1Primitive toASN1Primitive()
031    {
032        try
033        {
034            return getLoadedObject();
035        }
036        catch (IOException e)
037        {
038            throw new ASN1ParsingException("IOException converting stream to byte array: " + e.getMessage(), e);
039        }
040    }
041}