Esempio n. 1
0
        public static byte[] DeCompressFromBytesToBytes(this byte[] input)
        {
            var bytes = input;

            using (var inStream = new MemoryStream(bytes))
            {
                using (var outStream = new MemoryStream())
                {
                    using (var deCompress = new GZipStream(inStream, CompressionMode.Decompress))
                    {
                        StreamExtentions.CopyTo(deCompress, outStream);
                    }
                    return(outStream.ToArray());
                }
            }
        }
Esempio n. 2
0
 public static byte[] CompressStreamToBytes(this Stream input)
 {
     using (var inStream = new MemoryStream())
     {
         StreamExtentions.CopyTo(input, inStream);
         using (var outStream = new MemoryStream())
         {
             using (var compress = new GZipStream(outStream, CompressionMode.Compress))
             {
                 StreamExtentions.CopyTo(inStream, compress);
                 //compress.Write(_bytes, 0, _bytes.Length);
             }
             return(outStream.ToArray());
         }
     }
 }
Esempio n. 3
0
        public static byte[] CompressStringToBytes(this string input)
        {
            var bytes = Encoding.UTF8.GetBytes(input);

            using (var inStream = new MemoryStream(bytes))
            {
                using (var outStream = new MemoryStream())
                {
                    using (var compress = new GZipStream(outStream, CompressionMode.Compress))
                    {
                        StreamExtentions.CopyTo(inStream, compress);
                        //compress.Write(_bytes, 0, _bytes.Length);
                    }
                    return(outStream.ToArray());
                }
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Decrypts and decompresses bytes array
 /// </summary>
 /// <param name="data"></param>
 /// <param name="key"></param>
 /// <param name="iv"></param>
 /// <returns></returns>
 public static byte[] Decrypt(this byte[] data, byte[] key, byte[] iv)
 {
     if (key.Length == 16 && iv.Length == 16)
     {
         using (var algorithm = Aes.Create())
         {
             using (var inStream = new MemoryStream(data))
                 using (var outStream = new MemoryStream())
                 {
                     using (var decryptor = algorithm.CreateDecryptor(key, iv))
                         using (Stream crypt = new CryptoStream(inStream, decryptor, CryptoStreamMode.Read))
                             using (var deCompress = new GZipStream(crypt, CompressionMode.Decompress))
                                 StreamExtentions.CopyTo(deCompress, outStream);
                     return(outStream.ToArray());
                 }
         }
     }
     else
     {
         Debug.Fail("Invalid key length in Decrypt");
         return(null);
     }
 }