CMIS-512: Fix for Base64 encoded streams

git-svn-id: https://svn.apache.org/repos/asf/chemistry/dotcmis/trunk@1297190 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/DotCMIS/binding/http.cs b/DotCMIS/binding/http.cs
index c2d1ade..7200a50 100644
--- a/DotCMIS/binding/http.cs
+++ b/DotCMIS/binding/http.cs
@@ -178,13 +178,22 @@
                 Message = httpResponse.StatusDescription;

                 ContentType = httpResponse.ContentType;

                 ContentLength = httpResponse.ContentLength == -1 ? null : (long?)httpResponse.ContentLength;

+                string contentTransferEncoding = httpResponse.Headers["Content-Transfer-Encoding"];

+                bool isBase64 = contentTransferEncoding != null && contentTransferEncoding.Equals("base64", StringComparison.CurrentCultureIgnoreCase);

 

                 if (httpResponse.StatusCode == HttpStatusCode.OK ||

                     httpResponse.StatusCode == HttpStatusCode.Created ||

                     httpResponse.StatusCode == HttpStatusCode.NonAuthoritativeInformation ||

                     httpResponse.StatusCode == HttpStatusCode.PartialContent)

                 {

-                    Stream = new BufferedStream(httpResponse.GetResponseStream(), 64 * 1024);

+                    if (isBase64)

+                    {

+                        Stream = new BufferedStream(new CryptoStream(httpResponse.GetResponseStream(), new FromBase64Transform(), CryptoStreamMode.Read), 64 * 1024);

+                    }

+                    else

+                    {  

+                        Stream = new BufferedStream(httpResponse.GetResponseStream(), 64 * 1024);

+                    }

                 }

                 else

                 {