summary refs log tree commit diff
path: root/crypto/src/asn1/esf/CommitmentTypeQualifier.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/esf/CommitmentTypeQualifier.cs')
-rw-r--r--crypto/src/asn1/esf/CommitmentTypeQualifier.cs111
1 files changed, 50 insertions, 61 deletions
diff --git a/crypto/src/asn1/esf/CommitmentTypeQualifier.cs b/crypto/src/asn1/esf/CommitmentTypeQualifier.cs
index acf19f9f6..dd818613e 100644
--- a/crypto/src/asn1/esf/CommitmentTypeQualifier.cs
+++ b/crypto/src/asn1/esf/CommitmentTypeQualifier.cs
@@ -1,7 +1,5 @@
 using System;
 
-using Org.BouncyCastle.Utilities;
-
 namespace Org.BouncyCastle.Asn1.Esf
 {
     /**
@@ -16,39 +14,48 @@ namespace Org.BouncyCastle.Asn1.Esf
     public class CommitmentTypeQualifier
         : Asn1Encodable
     {
-        private readonly DerObjectIdentifier	commitmentTypeIdentifier;
-        private readonly Asn1Object				qualifier;
+        public static CommitmentTypeQualifier GetInstance(object obj)
+        {
+            if (obj == null)
+                return null;
+            if (obj is CommitmentTypeQualifier commitmentTypeQualifier)
+                return commitmentTypeQualifier;
+#pragma warning disable CS0618 // Type or member is obsolete
+            return new CommitmentTypeQualifier(Asn1Sequence.GetInstance(obj));
+#pragma warning restore CS0618 // Type or member is obsolete
+        }
+
+        public static CommitmentTypeQualifier GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
+        {
+#pragma warning disable CS0618 // Type or member is obsolete
+            return new CommitmentTypeQualifier(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
+#pragma warning restore CS0618 // Type or member is obsolete
+        }
+
+        private readonly DerObjectIdentifier m_commitmentTypeIdentifier;
+        private readonly Asn1Encodable m_qualifier;
 
         /**
-        * Creates a new <code>CommitmentTypeQualifier</code> instance.
-        *
-        * @param commitmentTypeIdentifier a <code>CommitmentTypeIdentifier</code> value
-        */
-        public CommitmentTypeQualifier(
-            DerObjectIdentifier commitmentTypeIdentifier)
+         * Creates a new <code>CommitmentTypeQualifier</code> instance.
+         *
+         * @param commitmentTypeIdentifier a <code>CommitmentTypeIdentifier</code> value
+         */
+        public CommitmentTypeQualifier(DerObjectIdentifier commitmentTypeIdentifier)
             : this(commitmentTypeIdentifier, null)
         {
         }
 
-    /**
-        * Creates a new <code>CommitmentTypeQualifier</code> instance.
-        *
-        * @param commitmentTypeIdentifier a <code>CommitmentTypeIdentifier</code> value
-        * @param qualifier the qualifier, defined by the above field.
-        */
-        public CommitmentTypeQualifier(
-            DerObjectIdentifier	commitmentTypeIdentifier,
-            Asn1Encodable		qualifier)
+        /**
+         * Creates a new <code>CommitmentTypeQualifier</code> instance.
+         *
+         * @param commitmentTypeIdentifier a <code>CommitmentTypeIdentifier</code> value
+         * @param qualifier the qualifier, defined by the above field.
+         */
+        public CommitmentTypeQualifier(DerObjectIdentifier commitmentTypeIdentifier, Asn1Encodable qualifier)
         {
-			if (commitmentTypeIdentifier == null)
-				throw new ArgumentNullException("commitmentTypeIdentifier");
-
-			this.commitmentTypeIdentifier = commitmentTypeIdentifier;
-
-			if (qualifier != null)
-			{
-				this.qualifier = qualifier.ToAsn1Object();
-			}
+			m_commitmentTypeIdentifier = commitmentTypeIdentifier
+                ?? throw new ArgumentNullException(nameof(commitmentTypeIdentifier));
+            m_qualifier = qualifier;
         }
 
         /**
@@ -57,46 +64,27 @@ namespace Org.BouncyCastle.Asn1.Esf
         * @param as <code>CommitmentTypeQualifier</code> structure
         * encoded as an Asn1Sequence.
         */
-        public CommitmentTypeQualifier(
-            Asn1Sequence seq)
+        [Obsolete("Use 'GetInstance' instead")]
+        public CommitmentTypeQualifier(Asn1Sequence seq)
         {
-			if (seq == null)
-				throw new ArgumentNullException("seq");
-			if (seq.Count < 1 || seq.Count > 2)
-				throw new ArgumentException("Bad sequence size: " + seq.Count, "seq");
+            int count = seq.Count;
+			if (count < 1 || count > 2)
+				throw new ArgumentException("Bad sequence size: " + count, nameof(seq));
 
-			commitmentTypeIdentifier = (DerObjectIdentifier) seq[0].ToAsn1Object();
+			m_commitmentTypeIdentifier = DerObjectIdentifier.GetInstance(seq[0]);
 
-			if (seq.Count > 1)
+			if (count > 1)
             {
-                qualifier = seq[1].ToAsn1Object();
+                m_qualifier = seq[1];
             }
         }
 
-		public static CommitmentTypeQualifier GetInstance(
-			object obj)
-		{
-			if (obj == null || obj is CommitmentTypeQualifier)
-				return (CommitmentTypeQualifier) obj;
-
-			if (obj is Asn1Sequence)
-				return new CommitmentTypeQualifier((Asn1Sequence) obj);
+        public DerObjectIdentifier CommitmentTypeIdentifier => m_commitmentTypeIdentifier;
 
-			throw new ArgumentException(
-				"Unknown object in 'CommitmentTypeQualifier' factory: "
-                    + Platform.GetTypeName(obj),
-				"obj");
-		}
-
-		public DerObjectIdentifier CommitmentTypeIdentifier
-		{
-			get { return commitmentTypeIdentifier; }
-		}
+        public Asn1Encodable QualifierData => m_qualifier;
 
-		public Asn1Object Qualifier
-		{
-			get { return qualifier; }
-		}
+        [Obsolete("Use 'QualifierData' instead")]
+        public Asn1Object Qualifier => m_qualifier?.ToAsn1Object();
 
 		/**
         * Returns a DER-encodable representation of this instance.
@@ -105,8 +93,9 @@ namespace Org.BouncyCastle.Asn1.Esf
         */
 		public override Asn1Object ToAsn1Object()
 		{
-			Asn1EncodableVector v = new Asn1EncodableVector(commitmentTypeIdentifier);
-            v.AddOptional(qualifier);
+            Asn1EncodableVector v = new Asn1EncodableVector(2);
+            v.Add(m_commitmentTypeIdentifier);
+            v.AddOptional(m_qualifier);
 			return new DerSequence(v);
 		}
     }