예제 #1
0
    def test_ShiftRowsInv(self):
        instance = AES()
        test_indice_replacement = [(0, 0), (8, 8), (4, 4), (12, 12), (1, 13),
                                   (5, 1), (9, 5), (13, 9), (2, 10), (6, 14),
                                   (10, 2), (14, 6), (3, 7), (7, 11), (11, 15),
                                   (15, 3)]

        for indices in test_indice_replacement:
            self.assertEquals(test_mask(indices[1]),
                              instance.ShiftRowsInv(test_mask(indices[0])),
                              msg="indice %d is not replaced correctly" %
                              indices[0])

        # full inversion test
        for block in instance._get_blocks(self.gf_full):
            test_input = block
            self.assertEquals(
                test_input,
                instance.ShiftRowsInv(instance.ShiftRows(test_input)))
            self.assertNotEqual(test_input, instance.ShiftRowsInv(test_input))