コード例 #1
0
 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);
             }
 }
コード例 #2
0
        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());
            }
        }