<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

TimeStampedData

using System; namespace Org.BouncyCastle.Asn1.Cms { public class TimeStampedData : Asn1Encodable { private readonly DerInteger m_version; private readonly DerIA5String m_dataUri; private readonly MetaData m_metaData; private readonly Asn1OctetString m_content; private readonly Evidence m_temporalEvidence; public virtual DerIA5String DataUri => m_dataUri; public MetaData MetaData => m_metaData; public Asn1OctetString Content => m_content; public Evidence TemporalEvidence => m_temporalEvidence; public static TimeStampedData GetInstance(object obj) { if (obj == null) return null; TimeStampedData timeStampedData = obj as TimeStampedData; if (timeStampedData != null) return timeStampedData; return new TimeStampedData(Asn1Sequence.GetInstance(obj)); } public static TimeStampedData GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new TimeStampedData(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static TimeStampedData GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new TimeStampedData(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public TimeStampedData(DerIA5String dataUri, MetaData metaData, Asn1OctetString content, Evidence temporalEvidence) { m_version = DerInteger.One; m_dataUri = dataUri; m_metaData = metaData; m_content = content; if (temporalEvidence == null) throw new ArgumentNullException("temporalEvidence"); m_temporalEvidence = temporalEvidence; } private TimeStampedData(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 2 || count > 5) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_version = DerInteger.GetInstance(seq[sequencePosition++]); m_dataUri = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerIA5String.GetOptional); m_metaData = Asn1Utilities.ReadOptional(seq, ref sequencePosition, MetaData.GetOptional); m_content = Asn1Utilities.ReadOptional(seq, ref sequencePosition, Asn1OctetString.GetOptional); m_temporalEvidence = Evidence.GetInstance(seq[sequencePosition++]); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(5); asn1EncodableVector.Add(m_version); asn1EncodableVector.AddOptional(m_dataUri, m_metaData, m_content); asn1EncodableVector.Add(m_temporalEvidence); return new BerSequence(asn1EncodableVector); } } }