<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" />

Validity

public class Validity : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.X509 { public class Validity : Asn1Encodable { private readonly Time m_notBefore; private readonly Time m_notAfter; public Time NotBefore => m_notBefore; public Time NotAfter => m_notAfter; public static Validity GetInstance(object obj) { if (obj == null) return null; Validity validity = obj as Validity; if (validity != null) return validity; return new Validity(Asn1Sequence.GetInstance(obj)); } public static Validity GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new Validity(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static Validity GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new Validity(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private Validity(Asn1Sequence seq) { int count = seq.Count; if (count != 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_notBefore = Time.GetInstance(seq[0]); m_notAfter = Time.GetInstance(seq[1]); } public Validity(Time notBefore, Time notAfter) { if (notBefore == null) throw new ArgumentNullException("notBefore"); m_notBefore = notBefore; if (notAfter == null) throw new ArgumentNullException("notAfter"); m_notAfter = notAfter; } public override Asn1Object ToAsn1Object() { return new DerSequence(m_notBefore, m_notAfter); } } }