예제 #1
0
 // Token: 0x0600064E RID: 1614 RVA: 0x0000597A File Offset: 0x00003B7A
 private void method_5(byte[] byte_3, int int_1)
 {
     this.uint_3 = Class129.smethod_1(byte_3, int_1);
     this.uint_4 = Class129.smethod_1(byte_3, int_1 + 4);
     this.uint_5 = Class129.smethod_1(byte_3, int_1 + 8);
     this.uint_6 = Class129.smethod_1(byte_3, int_1 + 12);
 }
예제 #2
0
    // Token: 0x06000647 RID: 1607 RVA: 0x00037260 File Offset: 0x00035460
    private uint[,] method_4(byte[] byte_3, bool bool_1)
    {
        int num = byte_3.Length / 4;

        if (num != 4 && num != 6 && num != 8)
        {
            throw new ArgumentException("Key length not 128/192/256 bits.");
        }
        this.int_0    = num + 6;
        uint[,] array = new uint[this.int_0 + 1, 4];
        int num2 = 0;
        int i    = 0;

        while (i < byte_3.Length)
        {
            array[num2 >> 2, num2 & 3] = Class129.smethod_1(byte_3, i);
            i += 4;
            num2++;
        }
        int num3 = this.int_0 + 1 << 2;

        for (int j = num; j < num3; j++)
        {
            uint num4 = array[j - 1 >> 2, j - 1 & 3];
            if (j % num == 0)
            {
                num4 = (this.method_3(this.method_0(num4, 8)) ^ (uint)Class151.byte_2[j / num - 1]);
            }
            else if (num > 6 && j % num == 4)
            {
                num4 = this.method_3(num4);
            }
            array[j >> 2, j & 3] = (array[j - num >> 2, j - num & 3] ^ num4);
        }
        if (!bool_1)
        {
            for (int k = 1; k < this.int_0; k++)
            {
                for (int l = 0; l < 4; l++)
                {
                    array[k, l] = this.method_2(array[k, l]);
                }
            }
        }
        return(array);
    }