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

DirectoryString

using Org.BouncyCastle.Utilities; using System; namespace Org.BouncyCastle.Asn1.X500 { public class DirectoryString : Asn1Encodable, IAsn1Choice, IAsn1String { private readonly DerStringBase m_str; public static DirectoryString GetInstance(object obj) { if (obj == null) return null; Asn1Encodable asn1Encodable = obj as Asn1Encodable; if (asn1Encodable != null) { DirectoryString optional = GetOptional(asn1Encodable); if (optional != null) return optional; } throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj"); } 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(); } } }