summary refs log tree commit diff
path: root/crypto/src/asn1/BerSequence.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/BerSequence.cs')
-rw-r--r--crypto/src/asn1/BerSequence.cs20
1 files changed, 12 insertions, 8 deletions
diff --git a/crypto/src/asn1/BerSequence.cs b/crypto/src/asn1/BerSequence.cs
index e0525efa6..c8c5bbbbd 100644
--- a/crypto/src/asn1/BerSequence.cs
+++ b/crypto/src/asn1/BerSequence.cs
@@ -55,14 +55,13 @@ namespace Org.BouncyCastle.Asn1
 
         internal override void Encode(Asn1OutputStream asn1Out, bool withID)
 		{
-			if (asn1Out.IsBer)
+			if (!asn1Out.IsBer)
             {
-                asn1Out.WriteEncodingIL(withID, Asn1Tags.Constructed | Asn1Tags.Sequence, elements);
-			}
-			else
-			{
-				base.Encode(asn1Out, withID);
-			}
+                base.Encode(asn1Out, withID);
+                return;
+            }
+
+            asn1Out.WriteEncodingIL(withID, Asn1Tags.Constructed | Asn1Tags.Sequence, elements);
 		}
 
         internal override DerBitString ToAsn1BitString()
@@ -74,12 +73,17 @@ namespace Org.BouncyCastle.Asn1
         {
             // TODO There is currently no BerExternal class (or ToDLObject/ToDerObject)
             //return ((Asn1Sequence)ToDLObject()).ToAsn1External();
-            return new DerSequence(elements, false).ToAsn1External();
+            return new DLSequence(elements).ToAsn1External();
         }
 
         internal override Asn1OctetString ToAsn1OctetString()
         {
             return new BerOctetString(GetConstructedOctetStrings());
         }
+
+        internal override Asn1Set ToAsn1Set()
+        {
+            return new BerSet(false, elements);
+        }
     }
 }