using System; using Org.BouncyCastle.Utilities; namespace Org.BouncyCastle.Asn1.Cms { public class TimeStampTokenEvidence : Asn1Encodable { public static TimeStampTokenEvidence GetInstance(object obj) { if (obj == null) return null; if (obj is TimeStampTokenEvidence timeStampTokenEvidence) return timeStampTokenEvidence; return new TimeStampTokenEvidence(Asn1Sequence.GetInstance(obj)); } public static TimeStampTokenEvidence GetInstance(Asn1TaggedObject tagged, bool isExplicit) { return new TimeStampTokenEvidence(Asn1Sequence.GetInstance(tagged, isExplicit)); } private readonly TimeStampAndCrl[] m_timeStampAndCrls; public TimeStampTokenEvidence(TimeStampAndCrl[] timeStampAndCrls) { if (Arrays.IsNullOrContainsNull(timeStampAndCrls)) throw new NullReferenceException("'timeStampAndCrls' cannot be null, or contain null"); m_timeStampAndCrls = timeStampAndCrls; } public TimeStampTokenEvidence(TimeStampAndCrl timeStampAndCrl) { m_timeStampAndCrls = new []{ timeStampAndCrl ?? throw new ArgumentNullException(nameof(timeStampAndCrl)) }; } private TimeStampTokenEvidence(Asn1Sequence seq) { m_timeStampAndCrls = seq.MapElements(TimeStampAndCrl.GetInstance); } public virtual TimeStampAndCrl[] ToTimeStampAndCrlArray() => (TimeStampAndCrl[])m_timeStampAndCrls.Clone(); /** *
		 * TimeStampTokenEvidence ::=
		 *    SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
		 * 
* @return */ public override Asn1Object ToAsn1Object() => new DerSequence(m_timeStampAndCrls); } }