001package org.apache.commons.ssl.org.bouncycastle.asn1.tsp;
002
003import java.util.Enumeration;
004
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
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.cmp.PKIStatusInfo;
011import org.apache.commons.ssl.org.bouncycastle.asn1.cms.ContentInfo;
012
013
014public class TimeStampResp
015    extends ASN1Object
016{
017    PKIStatusInfo pkiStatusInfo;
018
019    ContentInfo timeStampToken;
020
021    public static TimeStampResp getInstance(Object o)
022    {
023        if (o instanceof TimeStampResp)
024        {
025            return (TimeStampResp) o;
026        }
027        else if (o != null)
028        {
029            return new TimeStampResp(ASN1Sequence.getInstance(o));
030        }
031
032        return null;
033    }
034
035    private TimeStampResp(ASN1Sequence seq)
036    {
037
038        Enumeration e = seq.getObjects();
039
040        // status
041        pkiStatusInfo = PKIStatusInfo.getInstance(e.nextElement());
042
043        if (e.hasMoreElements())
044        {
045            timeStampToken = ContentInfo.getInstance(e.nextElement());
046        }
047    }
048
049    public TimeStampResp(PKIStatusInfo pkiStatusInfo, ContentInfo timeStampToken)
050    {
051        this.pkiStatusInfo = pkiStatusInfo;
052        this.timeStampToken = timeStampToken;
053    }
054
055    public PKIStatusInfo getStatus()
056    {
057        return pkiStatusInfo;
058    }
059
060    public ContentInfo getTimeStampToken()
061    {
062        return timeStampToken;
063    }
064
065    /**
066     * <pre>
067     * TimeStampResp ::= SEQUENCE  {
068     *   status                  PKIStatusInfo,
069     *   timeStampToken          TimeStampToken     OPTIONAL  }
070     * </pre>
071     */
072    public ASN1Primitive toASN1Primitive()
073    {
074        ASN1EncodableVector v = new ASN1EncodableVector();
075        
076        v.add(pkiStatusInfo);
077        if (timeStampToken != null)
078        {
079            v.add(timeStampToken);
080        }
081
082        return new DERSequence(v);
083    }
084}