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

CertStatus

using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class CertStatus : Asn1Encodable, IAsn1Choice { private readonly int m_tagNo; private readonly Asn1Encodable m_value; public int TagNo => m_tagNo; public Asn1Encodable Status => m_value; public static CertStatus GetInstance(object obj) { return Asn1Utilities.GetInstanceChoice(obj, GetOptional); } public static CertStatus GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetInstanceChoice(taggedObject, declaredExplicit, GetInstance); } public static CertStatus GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); CertStatus certStatus = element as CertStatus; if (certStatus != null) return certStatus; Asn1TaggedObject optional = Asn1TaggedObject.GetOptional(element); if (optional != null) { Asn1Encodable optionalBaseObject = GetOptionalBaseObject(optional); if (optionalBaseObject != null) return new CertStatus(optional.TagNo, optionalBaseObject); } return null; } public static CertStatus GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetTaggedChoice(taggedObject, declaredExplicit, GetInstance); } private static Asn1Encodable GetOptionalBaseObject(Asn1TaggedObject taggedObject) { if (taggedObject.HasContextTag()) { switch (taggedObject.TagNo) { case 0: return Asn1Null.GetTagged(taggedObject, false); case 1: return RevokedInfo.GetTagged(taggedObject, false); case 2: return Asn1Null.GetTagged(taggedObject, false); } } return null; } public CertStatus() { m_tagNo = 0; m_value = DerNull.Instance; } public CertStatus(RevokedInfo info) { m_tagNo = 1; if (info == null) throw new ArgumentNullException("info"); m_value = info; } public CertStatus(int tagNo, Asn1Encodable value) { m_tagNo = tagNo; if (value == null) throw new ArgumentNullException("value"); m_value = value; } public CertStatus(Asn1TaggedObject choice) { m_tagNo = choice.TagNo; Asn1Encodable optionalBaseObject = GetOptionalBaseObject(choice); if (optionalBaseObject == null) throw new ArgumentException("unknown tag: " + Asn1Utilities.GetTagText(choice), "choice"); m_value = optionalBaseObject; } public override Asn1Object ToAsn1Object() { return new DerTaggedObject(false, m_tagNo, m_value); } } }