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 }