package org.bouncycastle.asn1.cms; import java.util.Enumeration; import org.bouncycastle.asn1.ASN1EncodableVector; import org.bouncycastle.asn1.ASN1Object; import org.bouncycastle.asn1.ASN1Primitive; import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.ASN1TaggedObject; import org.bouncycastle.asn1.DERSequence; /** * RFC 5544 * Binding Documents with Time-Stamps; TimeStampTokenEvidence object. *
 * TimeStampTokenEvidence ::=
 *    SEQUENCE SIZE(1..MAX) OF TimeStampAndCRL
 * 
*/ public class TimeStampTokenEvidence extends ASN1Object { private TimeStampAndCRL[] timeStampAndCRLs; public TimeStampTokenEvidence(TimeStampAndCRL[] timeStampAndCRLs) { this.timeStampAndCRLs = timeStampAndCRLs; } public TimeStampTokenEvidence(TimeStampAndCRL timeStampAndCRL) { this.timeStampAndCRLs = new TimeStampAndCRL[1]; timeStampAndCRLs[0] = timeStampAndCRL; } private TimeStampTokenEvidence(ASN1Sequence seq) { this.timeStampAndCRLs = new TimeStampAndCRL[seq.size()]; int count = 0; for (Enumeration en = seq.getObjects(); en.hasMoreElements();) { timeStampAndCRLs[count++] = TimeStampAndCRL.getInstance(en.nextElement()); } } public static TimeStampTokenEvidence getInstance(ASN1TaggedObject tagged, boolean explicit) { return getInstance(ASN1Sequence.getInstance(tagged, explicit)); } /** * Return a TimeStampTokenEvidence object from the given object. *

* Accepted inputs: *

* * @param obj the object we want converted. * @exception IllegalArgumentException if the object cannot be converted. */ public static TimeStampTokenEvidence getInstance(Object obj) { if (obj instanceof TimeStampTokenEvidence) { return (TimeStampTokenEvidence)obj; } else if (obj != null) { return new TimeStampTokenEvidence(ASN1Sequence.getInstance(obj)); } return null; } public TimeStampAndCRL[] toTimeStampAndCRLArray() { return timeStampAndCRLs; } public ASN1Primitive toASN1Primitive() { ASN1EncodableVector v = new ASN1EncodableVector(); for (int i = 0; i != timeStampAndCRLs.length; i++) { v.add(timeStampAndCRLs[i]); } return new DERSequence(v); } }