<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

NamingAuthority

using Org.BouncyCastle.Asn1.X500; using System; namespace Org.BouncyCastle.Asn1.IsisMtt.X509 { public class NamingAuthority : Asn1Encodable { public static readonly DerObjectIdentifier IdIsisMttATNamingAuthoritiesRechtWirtschaftSteuern = IsisMttObjectIdentifiers.IdIsisMttATNamingAuthorities.Branch("1"); private readonly DerObjectIdentifier m_namingAuthorityID; private readonly DerIA5String m_namingAuthorityUrl; private readonly DirectoryString m_namingAuthorityText; public virtual DerObjectIdentifier NamingAuthorityID => m_namingAuthorityID; public virtual DirectoryString NamingAuthorityText => m_namingAuthorityText; public virtual string NamingAuthorityUrl => m_namingAuthorityUrl?.GetString(); public virtual DerIA5String NamingAuthorityUrlData => m_namingAuthorityUrl; public static NamingAuthority GetInstance(object obj) { if (obj == null) return null; NamingAuthority namingAuthority = obj as NamingAuthority; if (namingAuthority != null) return namingAuthority; return new NamingAuthority(Asn1Sequence.GetInstance(obj)); } public static NamingAuthority GetInstance(Asn1TaggedObject obj, bool isExplicit) { return new NamingAuthority(Asn1Sequence.GetInstance(obj, isExplicit)); } public static NamingAuthority GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new NamingAuthority(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private NamingAuthority(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 0 || count > 3) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_namingAuthorityID = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerObjectIdentifier.GetOptional); m_namingAuthorityUrl = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DerIA5String.GetOptional); m_namingAuthorityText = Asn1Utilities.ReadOptional(seq, ref sequencePosition, DirectoryString.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public NamingAuthority(DerObjectIdentifier namingAuthorityID, string namingAuthorityUrl, DirectoryString namingAuthorityText) { m_namingAuthorityID = namingAuthorityID; m_namingAuthorityUrl = ((namingAuthorityUrl == null) ? null : new DerIA5String(namingAuthorityUrl, true)); m_namingAuthorityText = namingAuthorityText; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptional(m_namingAuthorityID); asn1EncodableVector.AddOptional(m_namingAuthorityUrl); asn1EncodableVector.AddOptional(m_namingAuthorityText); return new DerSequence(asn1EncodableVector); } } }