package org.bouncycastle.asn1; import java.io.IOException; import java.io.InputStream; /** * Parse for DER encoded OCTET STRINGS */ public class DEROctetStringParser implements ASN1OctetStringParser { private DefiniteLengthInputStream stream; DEROctetStringParser( DefiniteLengthInputStream stream) { this.stream = stream; } /** * 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 stream; } /** * Return an in-memory, encodable, representation of the OCTET STRING. * * @return a DEROctetString. * @throws IOException if there is an issue loading the data. */ public ASN1Primitive getLoadedObject() throws IOException { return new DEROctetString(stream.toByteArray()); } /** * Return an DEROctetString representing this parser and its contents. * * @return an DEROctetString */ public ASN1Primitive toASN1Primitive() { try { return getLoadedObject(); } catch (IOException e) { throw new ASN1ParsingException("IOException converting stream to byte array: " + e.getMessage(), e); } } }