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

PrivateKeyUsagePeriod

using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Asn1.X509 { public class PrivateKeyUsagePeriod : Asn1Encodable { private Asn1GeneralizedTime _notBefore; private Asn1GeneralizedTime _notAfter; public Asn1GeneralizedTime NotBefore => _notBefore; public Asn1GeneralizedTime NotAfter => _notAfter; public static PrivateKeyUsagePeriod GetInstance(object obj) { if (obj is PrivateKeyUsagePeriod) return (PrivateKeyUsagePeriod)obj; if (obj is Asn1Sequence) return new PrivateKeyUsagePeriod((Asn1Sequence)obj); if (obj is X509Extension) return GetInstance(X509Extension.ConvertValueToObject((X509Extension)obj)); throw new ArgumentException("unknown object in GetInstance: " + Platform.GetTypeName(obj), "obj"); } private PrivateKeyUsagePeriod(Asn1Sequence seq) { foreach (Asn1TaggedObject item in seq) { if (item.TagNo == 0) _notBefore = Asn1GeneralizedTime.GetInstance(item, false); else if (item.TagNo == 1) { _notAfter = Asn1GeneralizedTime.GetInstance(item, false); } } } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(2); asn1EncodableVector.AddOptionalTagged(false, 0, _notBefore); asn1EncodableVector.AddOptionalTagged(false, 1, _notAfter); return new DerSequence(asn1EncodableVector); } } }