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

Admissions

public class Admissions : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Utilities; using System; using System.Collections.Generic; namespace Org.BouncyCastle.Asn1.IsisMtt.X509 { public class Admissions : Asn1Encodable { private readonly GeneralName admissionAuthority; private readonly NamingAuthority namingAuthority; private readonly Asn1Sequence professionInfos; public virtual GeneralName AdmissionAuthority => admissionAuthority; public virtual NamingAuthority NamingAuthority => namingAuthority; public static Admissions GetInstance(object obj) { if (obj == null || obj is Admissions) return (Admissions)obj; Asn1Sequence asn1Sequence = obj as Asn1Sequence; if (asn1Sequence != null) return new Admissions(asn1Sequence); throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj"); } private Admissions(Asn1Sequence seq) { int num; if (seq.Count > 3) { num = seq.Count; throw new ArgumentException("Bad sequence size: " + num.ToString()); } IEnumerator<Asn1Encodable> enumerator = seq.GetEnumerator(); enumerator.MoveNext(); Asn1Encodable current = enumerator.Current; Asn1TaggedObject asn1TaggedObject = current as Asn1TaggedObject; if (asn1TaggedObject != null) { num = asn1TaggedObject.TagNo; switch (num) { case 0: admissionAuthority = GeneralName.GetInstance(asn1TaggedObject, true); break; case 1: namingAuthority = NamingAuthority.GetInstance(asn1TaggedObject, true); break; default: throw new ArgumentException("Bad tag number: " + asn1TaggedObject.TagNo.ToString()); } enumerator.MoveNext(); current = enumerator.Current; } Asn1TaggedObject asn1TaggedObject2 = current as Asn1TaggedObject; if (asn1TaggedObject2 != null) { if (asn1TaggedObject2.TagNo != 1) { num = asn1TaggedObject2.TagNo; throw new ArgumentException("Bad tag number: " + num.ToString()); } namingAuthority = NamingAuthority.GetInstance(asn1TaggedObject2, true); enumerator.MoveNext(); current = enumerator.Current; } professionInfos = Asn1Sequence.GetInstance(current); if (enumerator.MoveNext()) throw new ArgumentException("Bad object encountered: " + Platform.GetTypeName(enumerator.Current)); } public Admissions(GeneralName admissionAuthority, NamingAuthority namingAuthority, ProfessionInfo[] professionInfos) { this.admissionAuthority = admissionAuthority; this.namingAuthority = namingAuthority; this.professionInfos = new DerSequence(professionInfos); } public ProfessionInfo[] GetProfessionInfos() { ProfessionInfo[] array = new ProfessionInfo[professionInfos.Count]; int num = 0; foreach (Asn1Encodable professionInfo in professionInfos) { array[num++] = ProfessionInfo.GetInstance(professionInfo); } return array; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptionalTagged(true, 0, admissionAuthority); asn1EncodableVector.AddOptionalTagged(true, 1, namingAuthority); asn1EncodableVector.Add(professionInfos); return new DerSequence(asn1EncodableVector); } } }