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

SemanticsInformation

using Org.BouncyCastle.Utilities; using System; using System.Collections.Generic; namespace Org.BouncyCastle.Asn1.X509.Qualified { public class SemanticsInformation : Asn1Encodable { private readonly DerObjectIdentifier semanticsIdentifier; private readonly GeneralName[] nameRegistrationAuthorities; public DerObjectIdentifier SemanticsIdentifier => semanticsIdentifier; public static SemanticsInformation GetInstance(object obj) { if (obj == null || obj is SemanticsInformation) return (SemanticsInformation)obj; if (obj is Asn1Sequence) return new SemanticsInformation(Asn1Sequence.GetInstance(obj)); throw new ArgumentException("unknown object in GetInstance: " + Platform.GetTypeName(obj), "obj"); } public SemanticsInformation(Asn1Sequence seq) { if (seq.Count < 1) throw new ArgumentException("no objects in SemanticsInformation"); IEnumerator<Asn1Encodable> enumerator = seq.GetEnumerator(); enumerator.MoveNext(); Asn1Encodable asn1Encodable = enumerator.Current; DerObjectIdentifier derObjectIdentifier = asn1Encodable as DerObjectIdentifier; if (derObjectIdentifier != null) { semanticsIdentifier = derObjectIdentifier; asn1Encodable = ((!enumerator.MoveNext()) ? null : enumerator.Current); } if (asn1Encodable != null) nameRegistrationAuthorities = Asn1Sequence.GetInstance(asn1Encodable).MapElements(GeneralName.GetInstance); } public SemanticsInformation(DerObjectIdentifier semanticsIdentifier, GeneralName[] generalNames) { this.semanticsIdentifier = semanticsIdentifier; nameRegistrationAuthorities = generalNames; } public SemanticsInformation(DerObjectIdentifier semanticsIdentifier) { this.semanticsIdentifier = semanticsIdentifier; } public SemanticsInformation(GeneralName[] generalNames) { nameRegistrationAuthorities = generalNames; } public GeneralName[] GetNameRegistrationAuthorities() { return nameRegistrationAuthorities; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(2); asn1EncodableVector.AddOptional(semanticsIdentifier); if (nameRegistrationAuthorities != null) { Asn1EncodableVector asn1EncodableVector2 = asn1EncodableVector; Asn1Encodable[] elements = nameRegistrationAuthorities; asn1EncodableVector2.Add(new DerSequence(elements)); } return new DerSequence(asn1EncodableVector); } } }