private static int[] generateWorkingKey(byte[] userKey)
 {
     if (userKey.Length != 32)
     {
         throw new ArgumentException("Key length invalid. Key needs to be 32 byte - 256 bit!!!");
     }
     int[] array = new int[8];
     for (int num = 0; num != 8; num++)
     {
         array[num] = Gost28147Mac.bytesToint(userKey, num * 4);
     }
     return(array);
 }
        private void gost28147MacFunc(int[] workingKey, byte[] input, int inOff, byte[] output, int outOff)
        {
            int num  = Gost28147Mac.bytesToint(input, inOff);
            int num2 = Gost28147Mac.bytesToint(input, inOff + 4);

            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    int num3 = num;
                    num  = (num2 ^ this.gost28147_mainStep(num, workingKey[j]));
                    num2 = num3;
                }
            }
            Gost28147Mac.intTobytes(num, output, outOff);
            Gost28147Mac.intTobytes(num2, output, outOff + 4);
        }