001package org.apache.commons.ssl.org.bouncycastle.asn1.pkcs;
002
003import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Encodable;
004import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector;
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1ObjectIdentifier;
007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive;
008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence;
009import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence;
010import org.apache.commons.ssl.org.bouncycastle.asn1.DERTaggedObject;
011
012public class CertBag
013    extends ASN1Object
014{
015    private ASN1ObjectIdentifier certId;
016    private ASN1Encodable certValue;
017
018    private CertBag(
019        ASN1Sequence    seq)
020    {
021        this.certId = (ASN1ObjectIdentifier)seq.getObjectAt(0);
022        this.certValue = ((DERTaggedObject)seq.getObjectAt(1)).getObject();
023    }
024
025    public static CertBag getInstance(Object o)
026    {
027        if (o instanceof CertBag)
028        {
029            return (CertBag)o;
030        }
031        else if (o != null)
032        {
033            return new CertBag(ASN1Sequence.getInstance(o));
034        }
035
036        return null;
037    }
038
039    public CertBag(
040        ASN1ObjectIdentifier certId,
041        ASN1Encodable        certValue)
042    {
043        this.certId = certId;
044        this.certValue = certValue;
045    }
046
047    public ASN1ObjectIdentifier getCertId()
048    {
049        return certId;
050    }
051
052    public ASN1Encodable getCertValue()
053    {
054        return certValue;
055    }
056
057    public ASN1Primitive toASN1Primitive()
058    {
059        ASN1EncodableVector  v = new ASN1EncodableVector();
060
061        v.add(certId);
062        v.add(new DERTaggedObject(0, certValue));
063
064        return new DERSequence(v);
065    }
066}