blob: 77a3049dc4b7a7a79e1c0ee9d78a376c4672cd82 [file] [log] [blame]
package org.bouncycastle.asn1;
import java.io.IOException;
import java.io.InputStream;
import org.bouncycastle.util.io.Streams;
/**
* A parser for indefinite-length OCTET STRINGs.
*/
public class BEROctetStringParser
implements ASN1OctetStringParser
{
private ASN1StreamParser _parser;
BEROctetStringParser(
ASN1StreamParser parser)
{
_parser = parser;
}
/**
* Return an InputStream representing the contents of the OCTET STRING.
*
* @return an InputStream with its source as the OCTET STRING content.
*/
public InputStream getOctetStream()
{
return new ConstructedOctetStream(_parser);
}
/**
* Return an in-memory, encodable, representation of the OCTET STRING.
*
* @return a BEROctetString.
* @throws IOException if there is an issue loading the data.
*/
public ASN1Primitive getLoadedObject()
throws IOException
{
return new BEROctetString(Streams.readAll(getOctetStream()));
}
/**
* Return an BEROctetString representing this parser and its contents.
*
* @return an BEROctetString
*/
public ASN1Primitive toASN1Primitive()
{
try
{
return getLoadedObject();
}
catch (IOException e)
{
throw new ASN1ParsingException("IOException converting stream to byte array: " + e.getMessage(), e);
}
}
}