1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.asn1;
2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport java.io.IOException;
4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport java.io.OutputStream;
5b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
6b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class BEROutputStream
7b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    extends DEROutputStream
8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{
9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public BEROutputStream(
10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        OutputStream    os)
11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        super(os);
13b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
15b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public void writeObject(
16b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        Object    obj)
17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        throws IOException
18b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        if (obj == null)
20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        {
21b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam            writeNull();
22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        }
234c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        else if (obj instanceof ASN1Primitive)
24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        {
254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            ((ASN1Primitive)obj).encode(this);
26b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        }
274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        else if (obj instanceof ASN1Encodable)
28b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        {
294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            ((ASN1Encodable)obj).toASN1Primitive().encode(this);
30b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        }
31b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        else
32b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        {
33b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam            throw new IOException("object not BEREncodable");
34b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        }
35b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
36b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam}
37