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

V2Form

public class V2Form : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.X509 { public class V2Form : Asn1Encodable { internal GeneralNames issuerName; internal IssuerSerial baseCertificateID; internal ObjectDigestInfo objectDigestInfo; public GeneralNames IssuerName => issuerName; public IssuerSerial BaseCertificateID => baseCertificateID; public ObjectDigestInfo ObjectDigestInfo => objectDigestInfo; public static V2Form GetInstance(Asn1TaggedObject obj, bool explicitly) { return GetInstance(Asn1Sequence.GetInstance(obj, explicitly)); } public static V2Form GetInstance(object obj) { if (obj is V2Form) return (V2Form)obj; if (obj != null) return new V2Form(Asn1Sequence.GetInstance(obj)); return null; } 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) { this.issuerName = issuerName; this.baseCertificateID = baseCertificateID; this.objectDigestInfo = objectDigestInfo; } private V2Form(Asn1Sequence seq) { int num; if (seq.Count > 3) { num = seq.Count; throw new ArgumentException("Bad sequence size: " + num.ToString()); } int num2 = 0; if (!(seq[0] is Asn1TaggedObject)) { num2++; issuerName = GeneralNames.GetInstance(seq[0]); } int num3 = num2; Asn1TaggedObject instance; while (true) { if (num3 == seq.Count) return; instance = Asn1TaggedObject.GetInstance(seq[num3]); if (instance.TagNo == 0) baseCertificateID = IssuerSerial.GetInstance(instance, false); else { if (instance.TagNo != 1) break; objectDigestInfo = ObjectDigestInfo.GetInstance(instance, false); } num3++; } num = instance.TagNo; throw new ArgumentException("Bad tag number: " + num.ToString()); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptional(issuerName); asn1EncodableVector.AddOptionalTagged(false, 0, baseCertificateID); asn1EncodableVector.AddOptionalTagged(false, 1, objectDigestInfo); return new DerSequence(asn1EncodableVector); } } }