summary refs log tree commit diff
path: root/crypto/src/asn1/cmp
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2023-01-17 20:32:13 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2023-01-17 20:32:13 +0700
commit2e1dc7df1b47554ed229b65b9574973b43541a10 (patch)
treefd8b51ede5fe64ef823d8eb60c5db17e40f31544 /crypto/src/asn1/cmp
parentFIx fetching of DateOfCertGen extension (diff)
downloadBouncyCastle.NET-ed25519-2e1dc7df1b47554ed229b65b9574973b43541a10.tar.xz
Refactoring in Asn1
Diffstat (limited to 'crypto/src/asn1/cmp')
-rw-r--r--crypto/src/asn1/cmp/PKIHeader.cs21
-rw-r--r--crypto/src/asn1/cmp/PKIHeaderBuilder.cs26
-rw-r--r--crypto/src/asn1/cmp/PKIMessage.cs10
-rw-r--r--crypto/src/asn1/cmp/PKIMessages.cs25
4 files changed, 26 insertions, 56 deletions
diff --git a/crypto/src/asn1/cmp/PKIHeader.cs b/crypto/src/asn1/cmp/PKIHeader.cs
index 7ed914e6a..7db9cde1d 100644
--- a/crypto/src/asn1/cmp/PKIHeader.cs
+++ b/crypto/src/asn1/cmp/PKIHeader.cs
@@ -76,13 +76,13 @@ namespace Org.BouncyCastle.Asn1.Cmp
 
         public static PkiHeader GetInstance(object obj)
         {
-            if (obj is PkiHeader)
-                return (PkiHeader)obj;
+            if (obj is PkiHeader pkiHeader)
+                return pkiHeader;
 
-            if (obj is Asn1Sequence)
-                return new PkiHeader((Asn1Sequence)obj);
+            if (obj is Asn1Sequence asn1Sequence)
+                return new PkiHeader(asn1Sequence);
 
-            throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj");
+            throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), nameof(obj));
         }
 
         public PkiHeader(
@@ -160,16 +160,7 @@ namespace Org.BouncyCastle.Asn1.Cmp
 
         public virtual InfoTypeAndValue[] GetGeneralInfo()
         {
-            if (generalInfo == null)
-            {
-                return null;
-            }
-            InfoTypeAndValue[] results = new InfoTypeAndValue[generalInfo.Count];
-            for (int i = 0; i < results.Length; i++)
-            {
-                results[i] = InfoTypeAndValue.GetInstance(generalInfo[i]);
-            }
-            return results;
+            return generalInfo?.MapElements(InfoTypeAndValue.GetInstance);
         }
 
         /**
diff --git a/crypto/src/asn1/cmp/PKIHeaderBuilder.cs b/crypto/src/asn1/cmp/PKIHeaderBuilder.cs
index cbefc73b8..ab8db958a 100644
--- a/crypto/src/asn1/cmp/PKIHeaderBuilder.cs
+++ b/crypto/src/asn1/cmp/PKIHeaderBuilder.cs
@@ -189,15 +189,15 @@ namespace Org.BouncyCastle.Asn1.Cmp
 		public virtual PkiHeader Build()
 		{
 			Asn1EncodableVector v = new Asn1EncodableVector(pvno, sender, recipient);
-			AddOptional(v, 0, messageTime);
-			AddOptional(v, 1, protectionAlg);
-			AddOptional(v, 2, senderKID);
-			AddOptional(v, 3, recipKID);
-			AddOptional(v, 4, transactionID);
-			AddOptional(v, 5, senderNonce);
-			AddOptional(v, 6, recipNonce);
-			AddOptional(v, 7, freeText);
-			AddOptional(v, 8, generalInfo);
+            v.AddOptionalTagged(true, 0, messageTime);
+            v.AddOptionalTagged(true, 1, protectionAlg);
+			v.AddOptionalTagged(true, 2, senderKID);
+			v.AddOptionalTagged(true, 3, recipKID);
+			v.AddOptionalTagged(true, 4, transactionID);
+			v.AddOptionalTagged(true, 5, senderNonce);
+			v.AddOptionalTagged(true, 6, recipNonce);
+			v.AddOptionalTagged(true, 7, freeText);
+			v.AddOptionalTagged(true, 8, generalInfo);
 
 			messageTime = null;
 			protectionAlg = null;
@@ -211,13 +211,5 @@ namespace Org.BouncyCastle.Asn1.Cmp
 
 			return PkiHeader.GetInstance(new DerSequence(v));
 		}
-
-		private void AddOptional(Asn1EncodableVector v, int tagNo, Asn1Encodable obj)
-		{
-			if (obj != null)
-			{
-				v.Add(new DerTaggedObject(true, tagNo, obj));
-			}
-		}
 	}
 }
diff --git a/crypto/src/asn1/cmp/PKIMessage.cs b/crypto/src/asn1/cmp/PKIMessage.cs
index c87bf2126..9ac54b3da 100644
--- a/crypto/src/asn1/cmp/PKIMessage.cs
+++ b/crypto/src/asn1/cmp/PKIMessage.cs
@@ -96,15 +96,7 @@ namespace Org.BouncyCastle.Asn1.Cmp
 
         public virtual CmpCertificate[] GetExtraCerts()
         {
-            if (extraCerts == null)
-                return null;
-
-            CmpCertificate[] results = new CmpCertificate[extraCerts.Count];
-            for (int i = 0; i < results.Length; ++i)
-            {
-                results[i] = CmpCertificate.GetInstance(extraCerts[i]);
-            }
-            return results;
+            return extraCerts?.MapElements(CmpCertificate.GetInstance);
         }
 
         /**
diff --git a/crypto/src/asn1/cmp/PKIMessages.cs b/crypto/src/asn1/cmp/PKIMessages.cs
index 0008f476a..8e2e8a1ed 100644
--- a/crypto/src/asn1/cmp/PKIMessages.cs
+++ b/crypto/src/asn1/cmp/PKIMessages.cs
@@ -7,37 +7,32 @@ namespace Org.BouncyCastle.Asn1.Cmp
     public class PkiMessages
         : Asn1Encodable
     {
-        private Asn1Sequence content;
+        private Asn1Sequence m_content;
 
         internal PkiMessages(Asn1Sequence seq)
         {
-            content = seq;
+            m_content = seq;
         }
 
         public static PkiMessages GetInstance(object obj)
         {
-            if (obj is PkiMessages)
-                return (PkiMessages)obj;
+            if (obj is PkiMessages pkiMessages)
+                return pkiMessages;
 
-            if (obj is Asn1Sequence)
-                return new PkiMessages((Asn1Sequence)obj);
+            if (obj is Asn1Sequence asn1Sequence)
+                return new PkiMessages(asn1Sequence);
 
-            throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj");
+            throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), nameof(obj));
         }
 
 		public PkiMessages(params PkiMessage[] msgs)
         {
-            content = new DerSequence(msgs);
+            m_content = new DerSequence(msgs);
         }
 
         public virtual PkiMessage[] ToPkiMessageArray()
         {
-            PkiMessage[] result = new PkiMessage[content.Count];
-            for (int i = 0; i != result.Length; ++i)
-            {
-                result[i] = PkiMessage.GetInstance(content[i]);
-            }
-            return result;
+            return m_content.MapElements(PkiMessage.GetInstance);
         }
 
         /**
@@ -48,7 +43,7 @@ namespace Org.BouncyCastle.Asn1.Cmp
          */
         public override Asn1Object ToAsn1Object()
         {
-            return content;
+            return m_content;
         }
     }
 }