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

CrlID

public class CrlID : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class CrlID : Asn1Encodable { private readonly DerIA5String crlUrl; private readonly DerInteger crlNum; private readonly Asn1GeneralizedTime crlTime; public DerIA5String CrlUrl => crlUrl; public DerInteger CrlNum => crlNum; public Asn1GeneralizedTime CrlTime => crlTime; public static CrlID GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return GetInstance(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static CrlID GetInstance(object obj) { if (obj == null) return null; CrlID crlID = obj as CrlID; if (crlID != null) return crlID; return new CrlID(Asn1Sequence.GetInstance(obj)); } [Obsolete("Use 'GetInstance' instead")] public CrlID(Asn1Sequence seq) { foreach (Asn1TaggedObject item in seq) { switch (item.TagNo) { case 0: crlUrl = DerIA5String.GetInstance(item, true); break; case 1: crlNum = DerInteger.GetInstance(item, true); break; case 2: crlTime = Asn1GeneralizedTime.GetInstance(item, true); break; default: throw new ArgumentException("unknown tag number: " + item.TagNo.ToString()); } } } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptionalTagged(true, 0, crlUrl); asn1EncodableVector.AddOptionalTagged(true, 1, crlNum); asn1EncodableVector.AddOptionalTagged(true, 2, crlTime); return new DerSequence(asn1EncodableVector); } } }