1
package org.bouncycastle.asn1.cms;
3
import java.io.IOException;
5
import org.bouncycastle.asn1.ASN1EncodableVector;
6
import org.bouncycastle.asn1.ASN1OctetStringParser;
7
import org.bouncycastle.asn1.ASN1Sequence;
8
import org.bouncycastle.asn1.ASN1SequenceParser;
9
import org.bouncycastle.asn1.BERSequence;
10
import org.bouncycastle.asn1.DEREncodable;
11
import org.bouncycastle.asn1.DERIA5String;
12
import org.bouncycastle.asn1.DERInteger;
13
import org.bouncycastle.asn1.DERObject;
15
public class TimeStampedDataParser
17
private DERInteger version;
18
private DERIA5String dataUri;
19
private MetaData metaData;
20
private ASN1OctetStringParser content;
21
private Evidence temporalEvidence;
22
private ASN1SequenceParser parser;
24
private TimeStampedDataParser(ASN1SequenceParser parser)
28
this.version = DERInteger.getInstance(parser.readObject());
30
DEREncodable obj = parser.readObject();
32
if (obj instanceof DERIA5String)
34
this.dataUri = DERIA5String.getInstance(obj);
35
obj = parser.readObject();
37
if (obj instanceof MetaData || obj instanceof ASN1SequenceParser)
39
this.metaData = MetaData.getInstance(obj.getDERObject());
40
obj = parser.readObject();
42
if (obj instanceof ASN1OctetStringParser)
44
this.content = (ASN1OctetStringParser)obj;
48
public static TimeStampedDataParser getInstance(Object obj)
51
if (obj instanceof ASN1Sequence)
53
return new TimeStampedDataParser(((ASN1Sequence)obj).parser());
55
if (obj instanceof ASN1SequenceParser)
57
return new TimeStampedDataParser((ASN1SequenceParser)obj);
63
public DERIA5String getDataUri()
68
public MetaData getMetaData()
73
public ASN1OctetStringParser getContent()
78
public Evidence getTemporalEvidence()
81
if (temporalEvidence == null)
83
temporalEvidence = Evidence.getInstance(parser.readObject().getDERObject());
86
return temporalEvidence;
91
* TimeStampedData ::= SEQUENCE {
92
* version INTEGER { v1(1) },
93
* dataUri IA5String OPTIONAL,
94
* metaData MetaData OPTIONAL,
95
* content OCTET STRING OPTIONAL,
96
* temporalEvidence Evidence
101
public DERObject toASN1Object()
103
ASN1EncodableVector v = new ASN1EncodableVector();
112
if (metaData != null)
122
v.add(temporalEvidence);
124
return new BERSequence(v);