1b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampackage org.bouncycastle.asn1.pkcs;
2b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
3b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.ASN1Encodable;
4b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.ASN1EncodableVector;
54c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Object;
64c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1ObjectIdentifier;
74c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstromimport org.bouncycastle.asn1.ASN1Primitive;
8b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.ASN1Sequence;
9b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.DERSequence;
10b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallamimport org.bouncycastle.asn1.DERTaggedObject;
11b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
12b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallampublic class CertBag
134c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    extends ASN1Object
14b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam{
154c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    private ASN1ObjectIdentifier certId;
164c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    private ASN1Encodable certValue;
17b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
184c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    private CertBag(
19b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        ASN1Sequence    seq)
20b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
214c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        this.certId = (ASN1ObjectIdentifier)seq.getObjectAt(0);
22b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        this.certValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject();
23b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
24b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
254c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public static CertBag getInstance(Object o)
264c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    {
274c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        if (o instanceof CertBag)
284c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        {
294c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            return (CertBag)o;
304c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        }
314c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        else if (o != null)
324c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        {
334c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom            return new CertBag(ASN1Sequence.getInstance(o));
344c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        }
354c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
364c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        return null;
374c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    }
384c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom
39b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    public CertBag(
404c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        ASN1ObjectIdentifier certId,
414c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom        ASN1Encodable        certValue)
42b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
43b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        this.certId = certId;
44b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        this.certValue = certValue;
45b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
46b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
474c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public ASN1ObjectIdentifier getCertId()
48b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
49b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        return certId;
50b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
51b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
524c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public ASN1Encodable getCertValue()
53b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
54b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        return certValue;
55b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
56b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
574c111300c39cb2e27f07fc2ae3b00e23ed4443b2Brian Carlstrom    public ASN1Primitive toASN1Primitive()
58b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    {
59b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        ASN1EncodableVector  v = new ASN1EncodableVector();
60b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
61b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        v.add(certId);
62b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        v.add(new DERTaggedObject(0, certValue));
63b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam
64b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam        return new DERSequence(v);
65b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam    }
66b61a96e7ef1a78acf013bbf08fe537e5b5f129caPeter Hallam}
67