1package org.bouncycastle.asn1.pkcs;
2
3import org.bouncycastle.asn1.ASN1Encodable;
4import org.bouncycastle.asn1.ASN1EncodableVector;
5import org.bouncycastle.asn1.ASN1Object;
6import org.bouncycastle.asn1.ASN1ObjectIdentifier;
7import org.bouncycastle.asn1.ASN1Primitive;
8import org.bouncycastle.asn1.ASN1Sequence;
9import org.bouncycastle.asn1.DERSequence;
10import org.bouncycastle.asn1.DERTaggedObject;
11
12public class CertBag
13    extends ASN1Object
14{
15    private ASN1ObjectIdentifier certId;
16    private ASN1Encodable certValue;
17
18    private CertBag(
19        ASN1Sequence    seq)
20    {
21        this.certId = (ASN1ObjectIdentifier)seq.getObjectAt(0);
22        this.certValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject();
23    }
24
25    public static CertBag getInstance(Object o)
26    {
27        if (o instanceof CertBag)
28        {
29            return (CertBag)o;
30        }
31        else if (o != null)
32        {
33            return new CertBag(ASN1Sequence.getInstance(o));
34        }
35
36        return null;
37    }
38
39    public CertBag(
40        ASN1ObjectIdentifier certId,
41        ASN1Encodable        certValue)
42    {
43        this.certId = certId;
44        this.certValue = certValue;
45    }
46
47    public ASN1ObjectIdentifier getCertId()
48    {
49        return certId;
50    }
51
52    public ASN1Encodable getCertValue()
53    {
54        return certValue;
55    }
56
57    public ASN1Primitive toASN1Primitive()
58    {
59        ASN1EncodableVector  v = new ASN1EncodableVector();
60
61        v.add(certId);
62        v.add(new DERTaggedObject(0, certValue));
63
64        return new DERSequence(v);
65    }
66}
67