summary refs log tree commit diff
path: root/crypto/src/asn1/DLTaggedObject.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/DLTaggedObject.cs')
-rw-r--r--crypto/src/asn1/DLTaggedObject.cs24
1 files changed, 11 insertions, 13 deletions
diff --git a/crypto/src/asn1/DLTaggedObject.cs b/crypto/src/asn1/DLTaggedObject.cs
index 30e3334e2..87705ea80 100644
--- a/crypto/src/asn1/DLTaggedObject.cs
+++ b/crypto/src/asn1/DLTaggedObject.cs
@@ -2,25 +2,25 @@
 
 namespace Org.BouncyCastle.Asn1
 {
-    internal class DLTaggedObject
+    public class DLTaggedObject
         : DerTaggedObject
     {
-        internal DLTaggedObject(int tagNo, Asn1Encodable obj)
+        public DLTaggedObject(int tagNo, Asn1Encodable obj)
             : base(tagNo, obj)
         {
         }
 
-        internal DLTaggedObject(int tagClass, int tagNo, Asn1Encodable obj)
+        public DLTaggedObject(int tagClass, int tagNo, Asn1Encodable obj)
             : base(tagClass, tagNo, obj)
         {
         }
 
-        internal DLTaggedObject(bool isExplicit, int tagNo, Asn1Encodable obj)
+        public DLTaggedObject(bool isExplicit, int tagNo, Asn1Encodable obj)
             : base(isExplicit, tagNo, obj)
         {
         }
 
-        internal DLTaggedObject(bool isExplicit, int tagClass, int tagNo, Asn1Encodable obj)
+        public DLTaggedObject(bool isExplicit, int tagClass, int tagNo, Asn1Encodable obj)
             : base(isExplicit, tagClass, tagNo, obj)
         {
         }
@@ -30,23 +30,19 @@ namespace Org.BouncyCastle.Asn1
         {
         }
 
-        internal override string Asn1Encoding
-        {
-            // TODO[asn1] Use DL encoding when supported
-            get { return Ber; }
-        }
-
         internal override IAsn1Encoding GetEncoding(int encoding)
         {
             if (Asn1OutputStream.EncodingDer == encoding)
                 return base.GetEncoding(encoding);
 
+            encoding = Asn1OutputStream.EncodingDL;
+
             Asn1Object baseObject = GetBaseObject().ToAsn1Object();
 
             if (!IsExplicit())
                 return baseObject.GetEncodingImplicit(encoding, TagClass, TagNo);
 
-            return new ConstructedDLEncoding(TagClass, TagNo, new IAsn1Encoding[]{ baseObject.GetEncoding(encoding) });
+            return new TaggedDLEncoding(TagClass, TagNo, baseObject.GetEncoding(encoding));
         }
 
         internal override IAsn1Encoding GetEncodingImplicit(int encoding, int tagClass, int tagNo)
@@ -54,12 +50,14 @@ namespace Org.BouncyCastle.Asn1
             if (Asn1OutputStream.EncodingDer == encoding)
                 return base.GetEncodingImplicit(encoding, tagClass, tagNo);
 
+            encoding = Asn1OutputStream.EncodingDL;
+
             Asn1Object baseObject = GetBaseObject().ToAsn1Object();
 
             if (!IsExplicit())
                 return baseObject.GetEncodingImplicit(encoding, tagClass, tagNo);
 
-            return new ConstructedDLEncoding(tagClass, tagNo, new IAsn1Encoding[]{ baseObject.GetEncoding(encoding) });
+            return new TaggedDLEncoding(tagClass, tagNo, baseObject.GetEncoding(encoding));
         }
 
         internal override Asn1Sequence RebuildConstructed(Asn1Object asn1Object)