#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR) #pragma warning disable using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Crmf { public class OptionalValidity : Asn1Encodable { private readonly Time notBefore; private readonly Time notAfter; private OptionalValidity(Asn1Sequence seq) { foreach (Asn1TaggedObject tObj in seq) { if (tObj.TagNo == 0) { notBefore = Time.GetInstance(tObj, true); } else { notAfter = Time.GetInstance(tObj, true); } } } public static OptionalValidity GetInstance(object obj) { if (obj == null || obj is OptionalValidity) return (OptionalValidity)obj; return new OptionalValidity(Asn1Sequence.GetInstance(obj)); } public OptionalValidity(Time notBefore, Time notAfter) { this.notBefore = notBefore; this.notAfter = notAfter; } public virtual Time NotBefore { get { return notBefore; } } public virtual Time NotAfter { get { return notAfter; } } /** *
* OptionalValidity ::= SEQUENCE { * notBefore [0] Time OPTIONAL, * notAfter [1] Time OPTIONAL } --at least one MUST be present ** @return a basic ASN.1 object representation. */ public override Asn1Object ToAsn1Object() { Asn1EncodableVector v = new Asn1EncodableVector(); v.AddOptionalTagged(true, 0, notBefore); v.AddOptionalTagged(true, 1, notAfter); return new DerSequence(v); } } } #pragma warning restore #endif