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

V2Form

public class V2Form : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.X509 { public class V2Form : Asn1Encodable { private readonly GeneralNames m_issuerName; private readonly IssuerSerial m_baseCertificateID; private readonly ObjectDigestInfo m_objectDigestInfo; public GeneralNames IssuerName => m_issuerName; public IssuerSerial BaseCertificateID => m_baseCertificateID; public ObjectDigestInfo ObjectDigestInfo => m_objectDigestInfo; public static V2Form GetInstance(object obj) { if (obj == null) return null; V2Form v2Form = obj as V2Form; if (v2Form != null) return v2Form; return new V2Form(Asn1Sequence.GetInstance(obj)); } public static V2Form GetInstance(Asn1TaggedObject obj, bool explicitly) { return new V2Form(Asn1Sequence.GetInstance(obj, explicitly)); } public static V2Form GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new V2Form(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private V2Form(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 0 || count > 3) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_issuerName = Asn1Utilities.ReadOptional(seq, ref sequencePosition, GeneralNames.GetOptional); m_baseCertificateID = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, false, IssuerSerial.GetTagged); m_objectDigestInfo = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 1, false, ObjectDigestInfo.GetTagged); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public V2Form(GeneralNames issuerName) : this(issuerName, null, null) { } public V2Form(GeneralNames issuerName, IssuerSerial baseCertificateID) : this(issuerName, baseCertificateID, null) { } public V2Form(GeneralNames issuerName, ObjectDigestInfo objectDigestInfo) : this(issuerName, null, objectDigestInfo) { } public V2Form(GeneralNames issuerName, IssuerSerial baseCertificateID, ObjectDigestInfo objectDigestInfo) { m_issuerName = issuerName; m_baseCertificateID = baseCertificateID; m_objectDigestInfo = objectDigestInfo; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptional(m_issuerName); asn1EncodableVector.AddOptionalTagged(false, 0, m_baseCertificateID); asn1EncodableVector.AddOptionalTagged(false, 1, m_objectDigestInfo); return new DerSequence(asn1EncodableVector); } } }