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

CertStatus

using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class CertStatus : Asn1Encodable, IAsn1Choice { private readonly int tagNo; private readonly Asn1Encodable value; public int TagNo => tagNo; public Asn1Encodable Status => value; public CertStatus() { tagNo = 0; value = DerNull.Instance; } public CertStatus(RevokedInfo info) { tagNo = 1; value = info; } public CertStatus(int tagNo, Asn1Encodable value) { this.tagNo = tagNo; this.value = value; } public CertStatus(Asn1TaggedObject choice) { tagNo = choice.TagNo; switch (choice.TagNo) { case 0: value = Asn1Null.GetInstance(choice, false); break; case 1: value = RevokedInfo.GetInstance(choice, false); break; case 2: value = Asn1Null.GetInstance(choice, false); break; default: throw new ArgumentException("Unknown tag encountered: " + Asn1Utilities.GetTagText(choice)); } } public static CertStatus GetInstance(object obj) { if (obj == null) return null; CertStatus certStatus = obj as CertStatus; if (certStatus != null) return certStatus; Asn1TaggedObject asn1TaggedObject = obj as Asn1TaggedObject; if (asn1TaggedObject != null) return new CertStatus(asn1TaggedObject); throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj"); } public static CertStatus GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetInstanceFromChoice(taggedObject, declaredExplicit, GetInstance); } public override Asn1Object ToAsn1Object() { return new DerTaggedObject(false, tagNo, value); } } }