1package org.bouncycastle.asn1.ocsp;
2
3import org.bouncycastle.asn1.ASN1EncodableVector;
4import org.bouncycastle.asn1.ASN1Object;
5import org.bouncycastle.asn1.ASN1ObjectIdentifier;
6import org.bouncycastle.asn1.ASN1OctetString;
7import org.bouncycastle.asn1.ASN1Primitive;
8import org.bouncycastle.asn1.ASN1Sequence;
9import org.bouncycastle.asn1.ASN1TaggedObject;
10import org.bouncycastle.asn1.DERSequence;
11
12public class ResponseBytes
13    extends ASN1Object
14{
15    ASN1ObjectIdentifier    responseType;
16    ASN1OctetString        response;
17
18    public ResponseBytes(
19        ASN1ObjectIdentifier responseType,
20        ASN1OctetString     response)
21    {
22        this.responseType = responseType;
23        this.response = response;
24    }
25
26    /**
27     * @deprecated use getInstance()
28     */
29    public ResponseBytes(
30        ASN1Sequence    seq)
31    {
32        responseType = (ASN1ObjectIdentifier)seq.getObjectAt(0);
33        response = (ASN1OctetString)seq.getObjectAt(1);
34    }
35
36    public static ResponseBytes getInstance(
37        ASN1TaggedObject obj,
38        boolean          explicit)
39    {
40        return getInstance(ASN1Sequence.getInstance(obj, explicit));
41    }
42
43    public static ResponseBytes getInstance(
44        Object  obj)
45    {
46        if (obj instanceof ResponseBytes)
47        {
48            return (ResponseBytes)obj;
49        }
50        else if (obj != null)
51        {
52            return new ResponseBytes(ASN1Sequence.getInstance(obj));
53        }
54
55        return null;
56    }
57
58    public ASN1ObjectIdentifier getResponseType()
59    {
60        return responseType;
61    }
62
63    public ASN1OctetString getResponse()
64    {
65        return response;
66    }
67
68    /**
69     * Produce an object suitable for an ASN1OutputStream.
70     * <pre>
71     * ResponseBytes ::=       SEQUENCE {
72     *     responseType   OBJECT IDENTIFIER,
73     *     response       OCTET STRING }
74     * </pre>
75     */
76    public ASN1Primitive toASN1Primitive()
77    {
78        ASN1EncodableVector    v = new ASN1EncodableVector();
79
80        v.add(responseType);
81        v.add(response);
82
83        return new DERSequence(v);
84    }
85}
86