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

PkiStatusInfo

public class PkiStatusInfo : Asn1Encodable
using Org.BouncyCastle.Math; using System; namespace Org.BouncyCastle.Asn1.Cmp { public class PkiStatusInfo : Asn1Encodable { private readonly DerInteger m_status; private readonly PkiFreeText m_statusString; private readonly DerBitString m_failInfo; public BigInteger Status => m_status.Value; public DerInteger StatusObject => m_status; public PkiFreeText StatusString => m_statusString; public DerBitString FailInfo => m_failInfo; public static PkiStatusInfo GetInstance(object obj) { if (obj == null) return null; PkiStatusInfo pkiStatusInfo = obj as PkiStatusInfo; if (pkiStatusInfo != null) return pkiStatusInfo; return new PkiStatusInfo(Asn1Sequence.GetInstance(obj)); } public static PkiStatusInfo GetInstance(Asn1TaggedObject obj, bool isExplicit) { return new PkiStatusInfo(Asn1Sequence.GetInstance(obj, isExplicit)); } public static PkiStatusInfo GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new PkiStatusInfo(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public static PkiStatusInfo GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); PkiStatusInfo pkiStatusInfo = element as PkiStatusInfo; if (pkiStatusInfo != null) return pkiStatusInfo; Asn1Sequence optional = Asn1Sequence.GetOptional(element); if (optional != null) return new PkiStatusInfo(optional); return null; } [Obsolete("Use 'GetInstance' instead")] public PkiStatusInfo(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 3) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_status = DerInteger.GetInstance(seq[sequencePosition++]); m_statusString = Asn1Utilities.ReadOptional(seq, ref sequencePosition, PkiFreeText.GetOptional); m_failInfo = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerBitString.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public PkiStatusInfo(PkiStatusEncodable status) { m_status = DerInteger.GetInstance(status.ToAsn1Object()); } public PkiStatusInfo(int status) { m_status = new DerInteger(status); m_statusString = null; m_failInfo = null; } public PkiStatusInfo(int status, PkiFreeText statusString) { m_status = new DerInteger(status); m_statusString = statusString; m_failInfo = null; } public PkiStatusInfo(int status, PkiFreeText statusString, PkiFailureInfo failInfo) { m_status = new DerInteger(status); m_statusString = statusString; m_failInfo = failInfo; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.Add(m_status); asn1EncodableVector.AddOptional(m_statusString, m_failInfo); return new DerSequence(asn1EncodableVector); } } }