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.
/**
* 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.
Returns: an InputStream with its source as the OCTET STRING content.
/**
* 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.
Throws: - IOException – if there is an issue loading the data.
Returns: a BEROctetString.
/**
* 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.
Returns: an BEROctetString
/**
* 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);
}
}
}