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

DirectoryString

using System; namespace Org.BouncyCastle.Asn1.X500 { public class DirectoryString : Asn1Encodable, IAsn1Choice, IAsn1String { private readonly DerStringBase m_str; public static DirectoryString GetInstance(object obj) { return Asn1Utilities.GetInstanceChoice(obj, GetOptional); } public static DirectoryString GetInstance(Asn1TaggedObject obj, bool isExplicit) { return Asn1Utilities.GetInstanceChoice(obj, isExplicit, GetInstance); } public static DirectoryString GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); DirectoryString directoryString = element as DirectoryString; if (directoryString != null) return directoryString; DerStringBase optionalInnerObject = GetOptionalInnerObject(element); if (optionalInnerObject != null) return new DirectoryString(optionalInnerObject); return null; } public static DirectoryString GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetTaggedChoice(taggedObject, declaredExplicit, GetInstance); } private static DerStringBase GetOptionalInnerObject(Asn1Encodable element) { return (DerStringBase)(DerT61String.GetOptional(element) ?? DerPrintableString.GetOptional(element) ?? DerUniversalString.GetOptional(element) ?? ((object)DerUtf8String.GetOptional(element)) ?? ((object)(DerBmpString.GetOptional(element) ?? null))); } private DirectoryString(DerStringBase str) { m_str = str; } public DirectoryString(string str) { m_str = new DerUtf8String(str); } public string GetString() { return m_str.GetString(); } public override Asn1Object ToAsn1Object() { return m_str.ToAsn1Object(); } } }