~brian-thomason/+junk/bouncycastle

« back to all changes in this revision

Viewing changes to jdk1.3/org/bouncycastle/asn1/cms/TimeStampedData.java

  • Committer: Brian Thomason
  • Date: 2011-12-20 17:20:32 UTC
  • Revision ID: brian.thomason@canonical.com-20111220172032-rdtm13jgdxtksacr
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.bouncycastle.asn1.cms;
 
2
 
 
3
import org.bouncycastle.asn1.ASN1Encodable;
 
4
import org.bouncycastle.asn1.ASN1EncodableVector;
 
5
import org.bouncycastle.asn1.ASN1OctetString;
 
6
import org.bouncycastle.asn1.ASN1Sequence;
 
7
import org.bouncycastle.asn1.BERSequence;
 
8
import org.bouncycastle.asn1.DERIA5String;
 
9
import org.bouncycastle.asn1.DERInteger;
 
10
import org.bouncycastle.asn1.DERObject;
 
11
 
 
12
public class TimeStampedData
 
13
    extends ASN1Encodable
 
14
{
 
15
    private DERInteger version;
 
16
    private DERIA5String dataUri;
 
17
    private MetaData metaData;
 
18
    private ASN1OctetString content;
 
19
    private Evidence temporalEvidence;
 
20
 
 
21
    public TimeStampedData(DERIA5String dataUri, MetaData metaData, ASN1OctetString content, Evidence temporalEvidence)
 
22
    {
 
23
        this.version = new DERInteger(1);
 
24
        this.dataUri = dataUri;
 
25
        this.metaData = metaData;
 
26
        this.content = content;
 
27
        this.temporalEvidence = temporalEvidence;
 
28
    }
 
29
 
 
30
 
 
31
    private TimeStampedData(ASN1Sequence seq)
 
32
    {
 
33
        this.version = DERInteger.getInstance(seq.getObjectAt(0));
 
34
 
 
35
        int index = 1;
 
36
        if (seq.getObjectAt(index) instanceof DERIA5String)
 
37
        {
 
38
            this.dataUri = DERIA5String.getInstance(seq.getObjectAt(index++));
 
39
        }
 
40
        if (seq.getObjectAt(index) instanceof MetaData || seq.getObjectAt(index) instanceof ASN1Sequence)
 
41
        {
 
42
            this.metaData = MetaData.getInstance(seq.getObjectAt(index++));
 
43
        }
 
44
        if (seq.getObjectAt(index) instanceof ASN1OctetString)
 
45
        {
 
46
            this.content = ASN1OctetString.getInstance(seq.getObjectAt(index++));
 
47
        }
 
48
        this.temporalEvidence = Evidence.getInstance(seq.getObjectAt(index));
 
49
    }
 
50
 
 
51
    public static TimeStampedData getInstance(Object obj)
 
52
    {
 
53
        if (obj instanceof TimeStampedData)
 
54
        {
 
55
            return (TimeStampedData)obj;
 
56
        }
 
57
        else if (obj != null)
 
58
        {
 
59
            return new TimeStampedData(ASN1Sequence.getInstance(obj));
 
60
        }
 
61
 
 
62
        throw new IllegalArgumentException("null object in factory");
 
63
    }
 
64
 
 
65
    public DERIA5String getDataUri()
 
66
    {
 
67
        return dataUri;
 
68
    }
 
69
 
 
70
    public MetaData getMetaData()
 
71
    {
 
72
        return metaData;
 
73
    }
 
74
 
 
75
    public ASN1OctetString getContent()
 
76
    {
 
77
        return content;
 
78
    }
 
79
 
 
80
    public Evidence getTemporalEvidence()
 
81
    {
 
82
        return temporalEvidence;
 
83
    }
 
84
 
 
85
 
 
86
    /**
 
87
     * <pre>
 
88
     * TimeStampedData ::= SEQUENCE {
 
89
     *   version              INTEGER { v1(1) },
 
90
     *   dataUri              IA5String OPTIONAL,
 
91
     *   metaData             MetaData OPTIONAL,
 
92
     *   content              OCTET STRING OPTIONAL,
 
93
     *   temporalEvidence     Evidence
 
94
     * }
 
95
     * </pre>
 
96
     * @return
 
97
     */
 
98
    public DERObject toASN1Object()
 
99
    {
 
100
        ASN1EncodableVector v = new ASN1EncodableVector();
 
101
 
 
102
        v.add(version);
 
103
 
 
104
        if (dataUri != null)
 
105
        {
 
106
            v.add(dataUri);
 
107
        }
 
108
 
 
109
        if (metaData != null)
 
110
        {
 
111
            v.add(metaData);
 
112
        }
 
113
 
 
114
        if (content != null)
 
115
        {
 
116
            v.add(content);
 
117
        }
 
118
 
 
119
        v.add(temporalEvidence);
 
120
 
 
121
        return new BERSequence(v);
 
122
    }
 
123
}