summary refs log tree commit diff
path: root/crypto/test/src/asn1/test/ASN1SequenceParserTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/test/src/asn1/test/ASN1SequenceParserTest.cs')
-rw-r--r--crypto/test/src/asn1/test/ASN1SequenceParserTest.cs285
1 files changed, 127 insertions, 158 deletions
diff --git a/crypto/test/src/asn1/test/ASN1SequenceParserTest.cs b/crypto/test/src/asn1/test/ASN1SequenceParserTest.cs
index 030da04cb..fd85a58fb 100644
--- a/crypto/test/src/asn1/test/ASN1SequenceParserTest.cs
+++ b/crypto/test/src/asn1/test/ASN1SequenceParserTest.cs
@@ -1,4 +1,3 @@
-using System;
 using System.IO;
 
 using NUnit.Framework;
@@ -6,7 +5,6 @@ using NUnit.Framework;
 using Org.BouncyCastle.Math;
 using Org.BouncyCastle.Utilities;
 using Org.BouncyCastle.Utilities.Encoders;
-using Org.BouncyCastle.Utilities.Test;
 
 namespace Org.BouncyCastle.Asn1.Tests
 {
@@ -30,13 +28,11 @@ namespace Org.BouncyCastle.Asn1.Tests
 		public void TestDerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            DerSequenceGenerator seqGen = new DerSequenceGenerator(bOut);
-
-			seqGen.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen.AddObject(new DerObjectIdentifier("1.1"));
-
-			seqGen.Close();
+			using (var seqGen = new DerSequenceGenerator(bOut))
+			{
+                seqGen.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen.AddObject(new DerObjectIdentifier("1.1"));
+            }
 
 			Assert.IsTrue(Arrays.AreEqual(seqData, bOut.ToArray()), "basic DER writing test failed.");
         }
@@ -45,34 +41,29 @@ namespace Org.BouncyCastle.Asn1.Tests
 		public void TestNestedDerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            DerSequenceGenerator seqGen1 = new DerSequenceGenerator(bOut);
-
-			seqGen1.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen1.AddObject(new DerObjectIdentifier("1.1"));
-
-			DerSequenceGenerator seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream());
-
-			seqGen2.AddObject(new DerInteger(BigInteger.One));
-
-			seqGen2.Close();
+			using (var seqGen1 = new DerSequenceGenerator(bOut))
+			{
+                seqGen1.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen1.AddObject(new DerObjectIdentifier("1.1"));
 
-			seqGen1.Close();
+                using (var seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream()))
+                {
+                    seqGen2.AddObject(new DerInteger(BigInteger.One));
+                }
+            }
 
-			Assert.IsTrue(Arrays.AreEqual(nestedSeqData, bOut.ToArray()), "nested DER writing test failed.");
+            Assert.IsTrue(Arrays.AreEqual(nestedSeqData, bOut.ToArray()), "nested DER writing test failed.");
         }
 
 		[Test]
 		public void TestDerExplicitTaggedSequenceWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            DerSequenceGenerator seqGen = new DerSequenceGenerator(bOut, 1, true);
-
-            seqGen.AddObject(new DerInteger(BigInteger.Zero));
-
-            seqGen.AddObject(new DerObjectIdentifier("1.1"));
-
-            seqGen.Close();
+            using (var seqGen = new DerSequenceGenerator(bOut, 1, true))
+            {
+                seqGen.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen.AddObject(new DerObjectIdentifier("1.1"));
+            }
 
             Assert.IsTrue(Arrays.AreEqual(expTagSeqData, bOut.ToArray()), "explicit tag writing test failed.");
         }
@@ -81,34 +72,29 @@ namespace Org.BouncyCastle.Asn1.Tests
 		public void TestDerImplicitTaggedSequenceWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            DerSequenceGenerator seqGen = new DerSequenceGenerator(bOut, 1, false);
-
-			seqGen.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen.AddObject(new DerObjectIdentifier("1.1"));
-
-			seqGen.Close();
+            using (var seqGen = new DerSequenceGenerator(bOut, 1, false))
+            {
+                seqGen.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen.AddObject(new DerObjectIdentifier("1.1"));
+            }
 
-			Assert.IsTrue(Arrays.AreEqual(implTagSeqData, bOut.ToArray()), "implicit tag writing test failed.");
+            Assert.IsTrue(Arrays.AreEqual(implTagSeqData, bOut.ToArray()), "implicit tag writing test failed.");
         }
 
 		[Test]
 		public void TestNestedExplicitTagDerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            DerSequenceGenerator  seqGen1 = new DerSequenceGenerator(bOut);
-
-            seqGen1.AddObject(new DerInteger(BigInteger.Zero));
-
-            seqGen1.AddObject(new DerObjectIdentifier("1.1"));
-
-            DerSequenceGenerator seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream(), 1, true);
-
-            seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
-
-            seqGen2.Close();
+            using (var seqGen1 = new DerSequenceGenerator(bOut))
+            {
+                seqGen1.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen1.AddObject(new DerObjectIdentifier("1.1"));
 
-            seqGen1.Close();
+                using (var seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream(), 1, true))
+                {
+                    seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
+                }
+            }
 
             Assert.IsTrue(Arrays.AreEqual(nestedSeqExpTagData, bOut.ToArray()), "nested explicit tagged DER writing test failed.");
         }
@@ -117,34 +103,29 @@ namespace Org.BouncyCastle.Asn1.Tests
 		public void TestNestedImplicitTagDerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            DerSequenceGenerator seqGen1 = new DerSequenceGenerator(bOut);
-
-			seqGen1.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen1.AddObject(new DerObjectIdentifier("1.1"));
-
-			DerSequenceGenerator seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream(), 1, false);
-
-			seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
-
-			seqGen2.Close();
+            using (var seqGen1 = new DerSequenceGenerator(bOut))
+            {
+                seqGen1.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen1.AddObject(new DerObjectIdentifier("1.1"));
 
-			seqGen1.Close();
+                using (var seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream(), 1, false))
+                {
+                    seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
+                }
+            }
 
-			Assert.IsTrue(Arrays.AreEqual(nestedSeqImpTagData, bOut.ToArray()), "nested implicit tagged DER writing test failed.");
+            Assert.IsTrue(Arrays.AreEqual(nestedSeqImpTagData, bOut.ToArray()), "nested implicit tagged DER writing test failed.");
         }
 
 		[Test]
 		public void TestBerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            BerSequenceGenerator seqGen = new BerSequenceGenerator(bOut);
-
-			seqGen.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen.AddObject(new DerObjectIdentifier("1.1"));
-
-			seqGen.Close();
+            using (var seqGen = new BerSequenceGenerator(bOut))
+            {
+                seqGen.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen.AddObject(new DerObjectIdentifier("1.1"));
+            }
 
 			Assert.IsTrue(Arrays.AreEqual(berSeqData, bOut.ToArray()), "basic BER writing test failed.");
         }
@@ -153,49 +134,42 @@ namespace Org.BouncyCastle.Asn1.Tests
 		public void TestNestedBerDerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            BerSequenceGenerator seqGen1 = new BerSequenceGenerator(bOut);
-
-			seqGen1.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen1.AddObject(new DerObjectIdentifier("1.1"));
-
-			DerSequenceGenerator seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream());
-
-			seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
-
-			seqGen2.Close();
+            using (var seqGen1 = new BerSequenceGenerator(bOut))
+            {
+                seqGen1.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen1.AddObject(new DerObjectIdentifier("1.1"));
 
-			seqGen1.Close();
+                using (var seqGen2 = new DerSequenceGenerator(seqGen1.GetRawOutputStream()))
+                {
+                    seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
+                }
+            }
 
-			Assert.IsTrue(Arrays.AreEqual(berDerNestedSeqData, bOut.ToArray()), "nested BER/DER writing test failed.");
+            Assert.IsTrue(Arrays.AreEqual(berDerNestedSeqData, bOut.ToArray()), "nested BER/DER writing test failed.");
         }
 
 		[Test]
 		public void TestNestedBerWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            BerSequenceGenerator seqGen1 = new BerSequenceGenerator(bOut);
-
-			seqGen1.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen1.AddObject(new DerObjectIdentifier("1.1"));
-
-			BerSequenceGenerator seqGen2 = new BerSequenceGenerator(seqGen1.GetRawOutputStream());
-
-			seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
-
-			seqGen2.Close();
+            using (var seqGen1 = new BerSequenceGenerator(bOut))
+            {
+                seqGen1.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen1.AddObject(new DerObjectIdentifier("1.1"));
 
-			seqGen1.Close();
+                using (var seqGen2 = new BerSequenceGenerator(seqGen1.GetRawOutputStream()))
+                {
+                    seqGen2.AddObject(new DerInteger(BigInteger.ValueOf(1)));
+                }
+            }
 
-			Assert.IsTrue(Arrays.AreEqual(berNestedSeqData, bOut.ToArray()), "nested BER writing test failed.");
+            Assert.IsTrue(Arrays.AreEqual(berNestedSeqData, bOut.ToArray()), "nested BER writing test failed.");
         }
 
 		[Test]
 		public void TestDerReading()
         {
             Asn1StreamParser aIn = new Asn1StreamParser(seqData);
-
 			Asn1SequenceParser seq = (Asn1SequenceParser)aIn.ReadObject();
             int count = 0;
 
@@ -206,12 +180,12 @@ namespace Org.BouncyCastle.Asn1.Tests
             {
                 switch (count)
                 {
-                    case 0:
-                        Assert.IsTrue(o is DerInteger);
-                        break;
-                    case 1:
-                        Assert.IsTrue(o is DerObjectIdentifier);
-                        break;
+                case 0:
+                    Assert.IsTrue(o is DerInteger);
+                    break;
+                case 1:
+                    Assert.IsTrue(o is DerObjectIdentifier);
+                    break;
                 }
                 count++;
             }
@@ -219,39 +193,38 @@ namespace Org.BouncyCastle.Asn1.Tests
 			Assert.AreEqual(2, count, "wrong number of objects in sequence");
         }
 
-		private void doTestNestedReading(
+		private void DoTestNestedReading(
             byte[] data)
         {
             Asn1StreamParser aIn = new Asn1StreamParser(data);
-
 			Asn1SequenceParser seq = (Asn1SequenceParser) aIn.ReadObject();
-            object o = null;
             int count = 0;
 
 			Assert.IsNotNull(seq, "null sequence returned");
 
-			while ((o = seq.ReadObject()) != null)
+            object o;
+            while ((o = seq.ReadObject()) != null)
             {
                 switch (count)
                 {
-                    case 0:
-                        Assert.IsTrue(o is DerInteger);
-                        break;
-                    case 1:
-                        Assert.IsTrue(o is DerObjectIdentifier);
-                        break;
-                    case 2:
-                        Assert.IsTrue(o is Asn1SequenceParser);
-
-						Asn1SequenceParser s = (Asn1SequenceParser)o;
-
-						// NB: Must exhaust the nested parser
-						while (s.ReadObject() != null)
-						{
-							// Ignore
-						}
-
-						break;
+                case 0:
+                    Assert.IsTrue(o is DerInteger);
+                    break;
+                case 1:
+                    Assert.IsTrue(o is DerObjectIdentifier);
+                    break;
+                case 2:
+                    Assert.IsTrue(o is Asn1SequenceParser);
+
+					Asn1SequenceParser s = (Asn1SequenceParser)o;
+
+					// NB: Must exhaust the nested parser
+					while (s.ReadObject() != null)
+					{
+						// Ignore
+					}
+
+					break;
                 }
                 count++;
             }
@@ -262,30 +235,29 @@ namespace Org.BouncyCastle.Asn1.Tests
 		[Test]
 		public void TestNestedDerReading()
         {
-            doTestNestedReading(nestedSeqData);
+            DoTestNestedReading(nestedSeqData);
         }
 
 		[Test]
 		public void TestBerReading()
         {
             Asn1StreamParser aIn = new Asn1StreamParser(berSeqData);
-
 			Asn1SequenceParser seq = (Asn1SequenceParser) aIn.ReadObject();
-            object o = null;
             int count = 0;
 
 			Assert.IsNotNull(seq, "null sequence returned");
 
-			while ((o = seq.ReadObject()) != null)
+            object o;
+            while ((o = seq.ReadObject()) != null)
             {
                 switch (count)
                 {
-                    case 0:
-                        Assert.IsTrue(o is DerInteger);
-                        break;
-                    case 1:
-                        Assert.IsTrue(o is DerObjectIdentifier);
-                        break;
+                case 0:
+                    Assert.IsTrue(o is DerInteger);
+                    break;
+                case 1:
+                    Assert.IsTrue(o is DerObjectIdentifier);
+                    break;
                 }
                 count++;
             }
@@ -296,59 +268,56 @@ namespace Org.BouncyCastle.Asn1.Tests
 		[Test]
 		public void TestNestedBerDerReading()
         {
-            doTestNestedReading(berDerNestedSeqData);
+            DoTestNestedReading(berDerNestedSeqData);
         }
 
 		[Test]
 		public void TestNestedBerReading()
         {
-            doTestNestedReading(berNestedSeqData);
+            DoTestNestedReading(berNestedSeqData);
         }
 
 		[Test]
 		public void TestBerExplicitTaggedSequenceWriting()
         {
             MemoryStream bOut = new MemoryStream();
-            BerSequenceGenerator seqGen = new BerSequenceGenerator(bOut, 1, true);
-
-			seqGen.AddObject(new DerInteger(BigInteger.Zero));
-
-			seqGen.AddObject(new DerObjectIdentifier("1.1"));
-
-			seqGen.Close();
+            using (var seqGen = new BerSequenceGenerator(bOut, 1, true))
+            {
+                seqGen.AddObject(new DerInteger(BigInteger.Zero));
+                seqGen.AddObject(new DerObjectIdentifier("1.1"));
+            }
 
-			Assert.IsTrue(Arrays.AreEqual(berExpTagSeqData, bOut.ToArray()), "explicit BER tag writing test failed.");
+            Assert.IsTrue(Arrays.AreEqual(berExpTagSeqData, bOut.ToArray()), "explicit BER tag writing test failed.");
         }
 
 		[Test]
 		public void TestSequenceWithDerNullReading()
 		{
-			doTestParseWithNull(berSeqWithDERNullData);
+			DoTestParseWithNull(berSeqWithDERNullData);
 		}
 
-		private void doTestParseWithNull(
-			byte[] data)
+		private void DoTestParseWithNull(byte[] data)
 		{
 			Asn1StreamParser aIn = new Asn1StreamParser(data);
 			Asn1SequenceParser seq = (Asn1SequenceParser) aIn.ReadObject();
-			object o;
 			int count = 0;
 
 			Assert.IsNotNull(seq, "null sequence returned");
 
-			while ((o = seq.ReadObject()) != null)
+            object o;
+            while ((o = seq.ReadObject()) != null)
 			{
 				switch (count)
 				{
-					case 0:
-						Assert.IsTrue(o is Asn1Null);
-						break;
-					case 1:
-						Assert.IsTrue(o is DerInteger);
-						break;
-					case 2:
-						Assert.IsTrue(o is DerObjectIdentifier);
-						break;
+				case 0:
+					Assert.IsTrue(o is Asn1Null);
+					break;
+				case 1:
+					Assert.IsTrue(o is DerInteger);
+					break;
+				case 2:
+					Assert.IsTrue(o is DerObjectIdentifier);
+					break;
 				}
 				count++;
 			}