summary refs log tree commit diff
path: root/crypto/src/asn1/icao/CscaMasterList.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/icao/CscaMasterList.cs')
-rw-r--r--crypto/src/asn1/icao/CscaMasterList.cs79
1 files changed, 30 insertions, 49 deletions
diff --git a/crypto/src/asn1/icao/CscaMasterList.cs b/crypto/src/asn1/icao/CscaMasterList.cs
index d03b3adb4..4c6ea827c 100644
--- a/crypto/src/asn1/icao/CscaMasterList.cs
+++ b/crypto/src/asn1/icao/CscaMasterList.cs
@@ -4,7 +4,7 @@ using Org.BouncyCastle.Asn1.X509;
 
 namespace Org.BouncyCastle.Asn1.Icao
 {
-	/**
+    /**
 	 * The CscaMasterList object. This object can be wrapped in a
 	 * CMSSignedData to be published in LDAP.
 	 *
@@ -16,68 +16,49 @@ namespace Org.BouncyCastle.Asn1.Icao
 	 * CscaMasterListVersion :: INTEGER {v0(0)}
 	 * </pre>
 	 */
-	public class CscaMasterList 
+    public class CscaMasterList 
 		: Asn1Encodable 
 	{
-		private DerInteger version = new DerInteger(0);
-		private X509CertificateStructure[] certList;
+        public static CscaMasterList GetInstance(object obj)
+        {
+            if (obj == null)
+                return null;
+            if (obj is CscaMasterList cscaMasterList)
+                return cscaMasterList;
+            return new CscaMasterList(Asn1Sequence.GetInstance(obj));
+        }
 
-		public static CscaMasterList GetInstance(
-			object obj)
-		{
-			if (obj is CscaMasterList)
-				return (CscaMasterList)obj;
-
-			if (obj != null)
-				return new CscaMasterList(Asn1Sequence.GetInstance(obj));            
+        public static CscaMasterList GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
+        {
+            return new CscaMasterList(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
+        }
 
-			return null;
-		}
+		private readonly DerInteger m_version;
+        private readonly X509CertificateStructure[] m_certList;
 
-		private CscaMasterList(
-			Asn1Sequence seq)
+        private CscaMasterList(Asn1Sequence seq)
 		{
-			if (seq == null || seq.Count == 0)
-				throw new ArgumentException("null or empty sequence passed.");
-
-			if (seq.Count != 2)
-				throw new ArgumentException("Incorrect sequence size: " + seq.Count);
+            int count = seq.Count;
+            if (count != 2)
+                throw new ArgumentException("Bad sequence size: " + count, nameof(seq));
 
-			this.version = DerInteger.GetInstance(seq[0]);
-
-			Asn1Set certSet = Asn1Set.GetInstance(seq[1]);
-
-			this.certList = new X509CertificateStructure[certSet.Count];
-			for (int i = 0; i < certList.Length; i++)
-			{
-				certList[i] = X509CertificateStructure.GetInstance(certSet[i]);
-			}
+			m_version = DerInteger.GetInstance(seq[0]);
+			m_certList = Asn1Set.GetInstance(seq[1]).MapElements(X509CertificateStructure.GetInstance);
 		}
 
-		public CscaMasterList(
-			X509CertificateStructure[] certStructs)
+		public CscaMasterList(X509CertificateStructure[] certStructs)
 		{
-			certList = CopyCertList(certStructs);
+			m_version = new DerInteger(0);
+			m_certList = CopyCertList(certStructs);
 		}
 
-		public virtual int Version
-		{
-            get { return version.IntValueExact; }
-		}
+		public virtual int Version => m_version.IntValueExact;
 
-		public X509CertificateStructure[] GetCertStructs()
-		{
-			return CopyCertList(certList);
-		}
+		public X509CertificateStructure[] GetCertStructs() => CopyCertList(m_certList);
 
-		private static X509CertificateStructure[] CopyCertList(X509CertificateStructure[] orig)
-		{
-			return (X509CertificateStructure[])orig.Clone();
-		}
+		private static X509CertificateStructure[] CopyCertList(X509CertificateStructure[] orig) =>
+			(X509CertificateStructure[])orig.Clone();
 
-		public override Asn1Object ToAsn1Object() 
-		{
-			return new DerSequence(version, new DerSet(certList));
-		}
+		public override Asn1Object ToAsn1Object() => new DerSequence(m_version, new DerSet(m_certList));
 	}
 }