summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crypto/src/asn1/Asn1Encodable.cs4
-rw-r--r--crypto/src/asn1/Asn1Object.cs8
2 files changed, 8 insertions, 4 deletions
diff --git a/crypto/src/asn1/Asn1Encodable.cs b/crypto/src/asn1/Asn1Encodable.cs
index 247b0e0bf..15918afb0 100644
--- a/crypto/src/asn1/Asn1Encodable.cs
+++ b/crypto/src/asn1/Asn1Encodable.cs
@@ -21,14 +21,14 @@ namespace Org.BouncyCastle.Asn1
 		public byte[] GetEncoded()
         {
             MemoryStream bOut = new MemoryStream();
-            EncodeTo(bOut);
+            ToAsn1Object().EncodeTo(bOut);
             return bOut.ToArray();
         }
 
         public byte[] GetEncoded(string encoding)
         {
             MemoryStream bOut = new MemoryStream();
-            EncodeTo(bOut, encoding);
+            ToAsn1Object().EncodeTo(bOut, encoding);
             return bOut.ToArray();
         }
 
diff --git a/crypto/src/asn1/Asn1Object.cs b/crypto/src/asn1/Asn1Object.cs
index 67c0f37c4..e6498060d 100644
--- a/crypto/src/asn1/Asn1Object.cs
+++ b/crypto/src/asn1/Asn1Object.cs
@@ -8,12 +8,16 @@ namespace Org.BouncyCastle.Asn1
     {
         public override void EncodeTo(Stream output)
         {
-            Asn1OutputStream.Create(output).WriteObject(this);
+            Asn1OutputStream asn1Out = Asn1OutputStream.Create(output);
+            Encode(asn1Out, true);
+            asn1Out.FlushInternal();
         }
 
         public override void EncodeTo(Stream output, string encoding)
         {
-            Asn1OutputStream.Create(output, encoding).WriteObject(this);
+            Asn1OutputStream asn1Out = Asn1OutputStream.Create(output, encoding);
+            Encode(asn1Out, true);
+            asn1Out.FlushInternal();
         }
 
         /// <summary>Create a base ASN.1 object from a byte array.</summary>