summary refs log tree commit diff
path: root/crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs')
-rw-r--r--crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs54
1 files changed, 24 insertions, 30 deletions
diff --git a/crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs b/crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs
index 53a8e98a7..84ee87f3b 100644
--- a/crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs
+++ b/crypto/src/asn1/isismtt/x509/AdditionalInformationSyntax.cs
@@ -1,11 +1,8 @@
-using System;
-
 using Org.BouncyCastle.Asn1.X500;
-using Org.BouncyCastle.Utilities;
 
 namespace Org.BouncyCastle.Asn1.IsisMtt.X509
 {
-	/**
+    /**
 	* Some other information of non-restrictive nature regarding the usage of this
 	* certificate.
 	* 
@@ -13,44 +10,44 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
 	*    AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
 	* </pre>
 	*/
-	public class AdditionalInformationSyntax
+    public class AdditionalInformationSyntax
 		: Asn1Encodable
 	{
-		private readonly DirectoryString information;
+        public static AdditionalInformationSyntax GetInstance(object obj)
+        {
+            if (obj == null)
+                return null;
+            if (obj is AdditionalInformationSyntax additionalInformationSyntax)
+                return additionalInformationSyntax;
+            return new AdditionalInformationSyntax(DirectoryString.GetInstance(obj));
+        }
 
-		public static AdditionalInformationSyntax GetInstance(
-			object obj)
-		{
-			if (obj is AdditionalInformationSyntax)
-				return (AdditionalInformationSyntax) obj;
+        public static AdditionalInformationSyntax GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) =>
+            new AdditionalInformationSyntax(DirectoryString.GetInstance(taggedObject, declaredExplicit));
 
-			if (obj is IAsn1String)
-				return new AdditionalInformationSyntax(DirectoryString.GetInstance(obj));
+        public static AdditionalInformationSyntax GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) =>
+            new AdditionalInformationSyntax(DirectoryString.GetTagged(taggedObject, declaredExplicit));
 
-            throw new ArgumentException("Unknown object in GetInstance: " + Platform.GetTypeName(obj), "obj");
-		}
+        private readonly DirectoryString m_information;
 
-		private AdditionalInformationSyntax(
-			DirectoryString information)
+        private AdditionalInformationSyntax(DirectoryString information)
 		{
-			this.information = information;
+            // TODO Length constraint?
+            m_information = information;
 		}
 
 		/**
 		* Constructor from a given details.
 		*
-		* @param information The describtion of the information.
+		* @param information The description of the information.
 		*/
-		public AdditionalInformationSyntax(
-			string information)
+		public AdditionalInformationSyntax(string information)
 		{
-			this.information = new DirectoryString(information);
+            // TODO Length constraint?
+            m_information = new DirectoryString(information);
 		}
 
-		public virtual DirectoryString Information
-		{
-			get { return information; }
-		}
+		public virtual DirectoryString Information => m_information;
 
 		/**
 		* Produce an object suitable for an Asn1OutputStream.
@@ -63,9 +60,6 @@ namespace Org.BouncyCastle.Asn1.IsisMtt.X509
 		*
 		* @return an Asn1Object
 		*/
-		public override Asn1Object ToAsn1Object()
-		{
-			return information.ToAsn1Object();
-		}
+		public override Asn1Object ToAsn1Object() => m_information.ToAsn1Object();
 	}
 }