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()); } } }
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()); } } }
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()); } } }
/// <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); } }