Example #1
0
File: ECB.cs Project: Ret4rd/MARS
        public async Task <byte[]> Decode(byte[] bloks)
        {
            var m = new List <byte>();

            for (int i = 0; i < bloks.Length; i += _algorithm.Size)
            {
                await Task.Run(() => m.AddRange(_algorithm.DecodeBlock(bloks.Skip(i).Take(_algorithm.Size).ToArray())));

                if (Thread.CurrentThread.ManagedThreadId == form.ThreadId)
                {
                    form.progressBar.Value = (int)(i / (float)bloks.Length * 100);
                }
            }


            return(m.ToArray());
        }
Example #2
0
File: CBC.cs Project: Ret4rd/MARS
        public async Task <byte[]> Decode(byte[] code)
        {
            var c = (byte[])code.Clone();
            var m = new List <byte>();

            var prev = _c0;

            for (int i = 0; i < code.Length; i += _algorithm.Size)
            {
                for (int j = 0; j < _algorithm.Size; j++)
                {
                    c[i + j] ^= prev[j];
                }
                form.progressBar.Value = (int)(i / (float)code.Length * 100);
                await Task.Run(() => m.AddRange(_algorithm.DecodeBlock(code.Skip(i).Take(_algorithm.Size).ToArray())));

                prev = m.Skip(i).Take(_algorithm.Size).ToArray();
            }

            return(m.ToArray());
        }