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

ResponseData

public class ResponseData : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Ocsp { public class ResponseData : Asn1Encodable { private static readonly DerInteger V1 = DerInteger.Zero; private readonly DerInteger m_version; private readonly bool m_versionPresent; private readonly ResponderID m_responderID; private readonly Asn1GeneralizedTime m_producedAt; private readonly Asn1Sequence m_responses; private readonly X509Extensions m_responseExtensions; public DerInteger Version => m_version; public ResponderID ResponderID => m_responderID; public Asn1GeneralizedTime ProducedAt => m_producedAt; public Asn1Sequence Responses => m_responses; public X509Extensions ResponseExtensions => m_responseExtensions; public static ResponseData GetInstance(object obj) { if (obj == null) return null; ResponseData responseData = obj as ResponseData; if (responseData != null) return responseData; return new ResponseData(Asn1Sequence.GetInstance(obj)); } public static ResponseData GetInstance(Asn1TaggedObject obj, bool explicitly) { return new ResponseData(Asn1Sequence.GetInstance(obj, explicitly)); } public static ResponseData GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new ResponseData(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public ResponseData(ResponderID responderID, Asn1GeneralizedTime producedAt, Asn1Sequence responses, X509Extensions responseExtensions) : this(V1, responderID, producedAt, responses, responseExtensions) { } public ResponseData(DerInteger version, ResponderID responderID, Asn1GeneralizedTime producedAt, Asn1Sequence responses, X509Extensions responseExtensions) { m_version = (version ?? V1); m_versionPresent = false; if (responderID == null) throw new ArgumentNullException("responderID"); m_responderID = responderID; if (producedAt == null) throw new ArgumentNullException("producedAt"); m_producedAt = producedAt; if (responses == null) throw new ArgumentNullException("responses"); m_responses = responses; m_responseExtensions = responseExtensions; } private ResponseData(Asn1Sequence seq) { int count = seq.Count; if (count < 3 || count > 5) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); int sequencePosition = 0; DerInteger derInteger = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, DerInteger.GetTagged); m_version = (derInteger ?? V1); m_versionPresent = (derInteger != null); m_responderID = ResponderID.GetInstance(seq[sequencePosition++]); m_producedAt = Asn1GeneralizedTime.GetInstance(seq[sequencePosition++]); m_responses = Asn1Sequence.GetInstance(seq[sequencePosition++]); m_responseExtensions = 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); if (m_versionPresent || !V1.Equals(m_version)) asn1EncodableVector.Add(new DerTaggedObject(true, 0, m_version)); asn1EncodableVector.Add(m_responderID, m_producedAt, m_responses); asn1EncodableVector.AddOptionalTagged(true, 1, m_responseExtensions); return new DerSequence(asn1EncodableVector); } } }