void DoUnkrabouille(string crypted, string restored, string passPhrase) { using (var o = new FileStream(crypted, FileMode.Open, FileAccess.Read)) using (var t = new FileStream(restored, FileMode.Create, FileAccess.Write)) using (var uk = new KrabouilleStream(o, passPhrase, KrabouilleMode.Unkrabouille)) { byte[] buffer = new byte[4096]; int len; do { len = uk.Read(buffer, 0, buffer.Length); t.Write(buffer, 0, len); }while (len == buffer.Length); } }
byte[] Read(byte[] data, string password) { List <byte> result = new List <byte>(); using (var m = new MemoryStream(data)) { byte[] buffer = new byte[128]; using (var uk = new KrabouilleStream(m, KrabouilleMode.Unkrabouille, password)) { int nbRead; while ((nbRead = uk.Read(buffer, 0, buffer.Length)) > 0) { for (int i = 0; i < nbRead; ++i) { result.Add(buffer[i]); } } } return(result.ToArray()); } }