1
package org.bouncycastle.asn1.cms;
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;
12
public class TimeStampedData
15
private DERInteger version;
16
private DERIA5String dataUri;
17
private MetaData metaData;
18
private ASN1OctetString content;
19
private Evidence temporalEvidence;
21
public TimeStampedData(DERIA5String dataUri, MetaData metaData, ASN1OctetString content, Evidence temporalEvidence)
23
this.version = new DERInteger(1);
24
this.dataUri = dataUri;
25
this.metaData = metaData;
26
this.content = content;
27
this.temporalEvidence = temporalEvidence;
31
private TimeStampedData(ASN1Sequence seq)
33
this.version = DERInteger.getInstance(seq.getObjectAt(0));
36
if (seq.getObjectAt(index) instanceof DERIA5String)
38
this.dataUri = DERIA5String.getInstance(seq.getObjectAt(index++));
40
if (seq.getObjectAt(index) instanceof MetaData || seq.getObjectAt(index) instanceof ASN1Sequence)
42
this.metaData = MetaData.getInstance(seq.getObjectAt(index++));
44
if (seq.getObjectAt(index) instanceof ASN1OctetString)
46
this.content = ASN1OctetString.getInstance(seq.getObjectAt(index++));
48
this.temporalEvidence = Evidence.getInstance(seq.getObjectAt(index));
51
public static TimeStampedData getInstance(Object obj)
53
if (obj instanceof TimeStampedData)
55
return (TimeStampedData)obj;
59
return new TimeStampedData(ASN1Sequence.getInstance(obj));
62
throw new IllegalArgumentException("null object in factory");
65
public DERIA5String getDataUri()
70
public MetaData getMetaData()
75
public ASN1OctetString getContent()
80
public Evidence getTemporalEvidence()
82
return temporalEvidence;
88
* TimeStampedData ::= SEQUENCE {
89
* version INTEGER { v1(1) },
90
* dataUri IA5String OPTIONAL,
91
* metaData MetaData OPTIONAL,
92
* content OCTET STRING OPTIONAL,
93
* temporalEvidence Evidence
98
public DERObject toASN1Object()
100
ASN1EncodableVector v = new ASN1EncodableVector();
109
if (metaData != null)
119
v.add(temporalEvidence);
121
return new BERSequence(v);