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

DisplayText

using Org.BouncyCastle.Utilities; 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 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 static DisplayText GetInstance(object obj) { IAsn1String asn1String = obj as IAsn1String; if (asn1String != null) return new DisplayText(asn1String); DisplayText displayText = obj as DisplayText; if (displayText != null) return displayText; throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), "obj"); } public static DisplayText GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return Asn1Utilities.GetInstanceFromChoice(taggedObject, declaredExplicit, GetInstance); } public override Asn1Object ToAsn1Object() { return (Asn1Object)contents; } public string GetString() { return contents.GetString(); } } }