예제 #1
0
            private void ProcessBlock()
            {
                var a = _digest[0];
                var b = _digest[1];
                var c = _digest[2];
                var d = _digest[3];
                var e = _digest[4];
                var f = _digest[5];
                var g = _digest[6];
                var h = _digest[7];

                for (var i = 0; i < 64; i++)
                {
                    var t1 = F1.Compile()(e, f, g, h, i, _w);
                    var t2 = F2.Compile()(a, b, c);
                    h = g;
                    g = f;
                    f = e;
                    e = d + t1;
                    d = c;
                    c = b;
                    b = a;
                    a = t1 + t2;
                }

                _digest[0] += a;
                _digest[1] += b;
                _digest[2] += c;
                _digest[3] += d;
                _digest[4] += e;
                _digest[5] += f;
                _digest[6] += g;
                _digest[7] += h;
            }