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

DisplayText

using System; namespace Org.BouncyCastle.Asn1.X509 { public class DisplayText : Asn1Encodable, IAsn1Choice { public const int ContentTypeIA5String = 0; public const int ContentTypeBmpString = 1; public const int ContentTypeUtf8String = 2; public const int ContentTypeVisibleString = 3; public const int DisplayTextMaximumSize = 200; internal readonly int contentType; internal readonly IAsn1String contents; public static DisplayText GetInstance(object obj) { return Asn1Utilities.GetInstanceChoice(obj, GetOptional); } public static DisplayText GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetInstanceChoice(taggedObject, declaredExplicit, GetInstance); } public static DisplayText GetOptional(Asn1Encodable element) { if (element == null) throw new ArgumentNullException("element"); DisplayText displayText = element as DisplayText; if (displayText != null) return displayText; DerStringBase optionalInnerObject = GetOptionalInnerObject(element); if (optionalInnerObject != null) return new DisplayText(optionalInnerObject); return null; } public static DisplayText GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetTaggedChoice(taggedObject, declaredExplicit, GetInstance); } private static DerStringBase GetOptionalInnerObject(Asn1Encodable element) { return (DerStringBase)(DerIA5String.GetOptional(element) ?? DerVisibleString.GetOptional(element) ?? ((object)DerBmpString.GetOptional(element)) ?? ((object)(DerUtf8String.GetOptional(element) ?? null))); } public DisplayText(int type, string text) { if (text.Length > 200) text = text.Substring(0, 200); contentType = type; switch (type) { case 0: contents = new DerIA5String(text); break; case 2: contents = new DerUtf8String(text); break; case 3: contents = new DerVisibleString(text); break; case 1: contents = new DerBmpString(text); break; default: contents = new DerUtf8String(text); break; } } public DisplayText(string text) { if (text.Length > 200) text = text.Substring(0, 200); contentType = 2; contents = new DerUtf8String(text); } public DisplayText(IAsn1String contents) { this.contents = contents; } public override Asn1Object ToAsn1Object() { return (Asn1Object)contents; } public string GetString() { return contents.GetString(); } } }