def test_quarter_round(self):
        #RFC 7539 in text test vector
        x = [0x11111111, 0x01020304, 0x9b8d6f43, 0x01234567]

        ChaCha.quarter_round(x, 0, 1, 2, 3)

        self.assertEqual(x, [0xea2a92f4, 0xcb1cf8ce, 0x4581472e, 0x5881c4bb])
    def test_quarter_round(self):
        #RFC 7539 in text test vector
        x = [0x11111111, 0x01020304, 0x9b8d6f43, 0x01234567]

        ChaCha.quarter_round(x, 0, 1, 2, 3)

        self.assertEqual(x,
                         [0xea2a92f4, 0xcb1cf8ce, 0x4581472e, 0x5881c4bb])
    def test_quarter_round_on_state(self):
        #RFC 7539 in text test vector
        x = [0x879531e0,  0xc5ecf37d,  0x516461b1,  0xc9a62f8a,
             0x44c20ef3,  0x3390af7f,  0xd9fc690b,  0x2a5f714c,
             0x53372767,  0xb00a5631,  0x974c541a,  0x359e9963,
             0x5c971061,  0x3d631689,  0x2098d9d6,  0x91dbd320]

        ChaCha.quarter_round(x, 2, 7, 8, 13)

        self.assertEqual(x,
                         [0x879531e0,  0xc5ecf37d,  0xbdb886dc,  0xc9a62f8a,
                          0x44c20ef3,  0x3390af7f,  0xd9fc690b,  0xcfacafd2,
                          0xe46bea80,  0xb00a5631,  0x974c541a,  0x359e9963,
                          0x5c971061,  0xccc07c79,  0x2098d9d6,  0x91dbd320])
    def test_quarter_round_on_state(self):
        #RFC 7539 in text test vector
        x = [
            0x879531e0, 0xc5ecf37d, 0x516461b1, 0xc9a62f8a, 0x44c20ef3,
            0x3390af7f, 0xd9fc690b, 0x2a5f714c, 0x53372767, 0xb00a5631,
            0x974c541a, 0x359e9963, 0x5c971061, 0x3d631689, 0x2098d9d6,
            0x91dbd320
        ]

        ChaCha.quarter_round(x, 2, 7, 8, 13)

        self.assertEqual(x, [
            0x879531e0, 0xc5ecf37d, 0xbdb886dc, 0xc9a62f8a, 0x44c20ef3,
            0x3390af7f, 0xd9fc690b, 0xcfacafd2, 0xe46bea80, 0xb00a5631,
            0x974c541a, 0x359e9963, 0x5c971061, 0xccc07c79, 0x2098d9d6,
            0x91dbd320
        ])