<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

SingleResponse

public class SingleResponse : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class SingleResponse : Asn1Encodable { private readonly CertID m_certID; private readonly CertStatus m_certStatus; private readonly Asn1GeneralizedTime m_thisUpdate; private readonly Asn1GeneralizedTime m_nextUpdate; private readonly X509Extensions m_singleExtensions; public CertID CertId => m_certID; public CertStatus CertStatus => m_certStatus; public Asn1GeneralizedTime ThisUpdate => m_thisUpdate; public Asn1GeneralizedTime NextUpdate => m_nextUpdate; public X509Extensions SingleExtensions => m_singleExtensions; public static SingleResponse GetInstance(object obj) { if (obj == null) return null; SingleResponse singleResponse = obj as SingleResponse; if (singleResponse != null) return singleResponse; return new SingleResponse(Asn1Sequence.GetInstance(obj)); } public static SingleResponse GetInstance(Asn1TaggedObject obj, bool explicitly) { return new SingleResponse(Asn1Sequence.GetInstance(obj, explicitly)); } public static SingleResponse GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new SingleResponse(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public SingleResponse(CertID certID, CertStatus certStatus, Asn1GeneralizedTime thisUpdate, Asn1GeneralizedTime nextUpdate, X509Extensions singleExtensions) { if (certID == null) throw new ArgumentNullException("certID"); m_certID = certID; if (certStatus == null) throw new ArgumentNullException("certStatus"); m_certStatus = certStatus; if (thisUpdate == null) throw new ArgumentNullException("thisUpdate"); m_thisUpdate = thisUpdate; m_nextUpdate = nextUpdate; m_singleExtensions = singleExtensions; } [Obsolete("Use 'GetInstance' instead")] public SingleResponse(Asn1Sequence seq) { int count = seq.Count; if (count < 3 || count > 5) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); int sequencePosition = 0; m_certID = CertID.GetInstance(seq[sequencePosition++]); m_certStatus = CertStatus.GetInstance(seq[sequencePosition++]); m_thisUpdate = Asn1GeneralizedTime.GetInstance(seq[sequencePosition++]); m_nextUpdate = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, Asn1GeneralizedTime.GetTagged); m_singleExtensions = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 1, true, X509Extensions.GetTagged); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(5); asn1EncodableVector.Add(m_certID, m_certStatus, m_thisUpdate); asn1EncodableVector.AddOptionalTagged(true, 0, m_nextUpdate); asn1EncodableVector.AddOptionalTagged(true, 1, m_singleExtensions); return new DerSequence(asn1EncodableVector); } } }