def test_SubBytesInv(self): # test single substitution sbox_input = gf._cache.fetch_int(0xb8) expected_result = gf._cache.fetch_int(0x9a) instance = AES() result = instance.SubBytesInv([sbox_input])[0] self.assertEquals(expected_result, result) poly = gf._cache.fetch_int(0x99) self.assertEquals(poly, instance.SubBytesInv(instance.SubBytes([poly]))[0]) # full inversion test self.assertEquals( self.gf_full, instance.SubBytesInv(instance.SubBytes(self.gf_full)))
def SubWord(word): from AES import AES temp = AES.SubBytes(word) return vector(temp)
def test_SubBytes_table(self): result = AES.SubBytes(self.gf_full) for (i, expected_int) in enumerate(S): self.assertEquals(expected_int, int(result[i]._int_repr()))
def test_SubBytes(self): sbox_input = gf._cache.fetch_int(0x9a) expected_result = gf._cache.fetch_int(0xb8) result = AES.SubBytes([sbox_input])[0] self.assertEquals(expected_result, result)