def test_gf_mult(): ''' Used by mix_columns and inv_mix_columns to perform multiplication in GF(2^8). param bv is an 8-bit BitVector, param factor is an integer. returns an 8-bit BitVector, whose value is bv*factor in GF(2^8) ''' bitVector = newBV(0x87) factor = 0x02 expected = newBV(0x15) actual = AES.gf_mult(bitVector, factor) assert expected == actual bitVector = newBV(0xca) factor = 0x53 expected = newBV(0x01) actual = AES.gf_mult(bitVector, factor) assert expected == actual bitVector = newBV(0xb6) factor = 0x53 expected = newBV(0x36) actual = AES.gf_mult(bitVector, factor) assert expected == actual
def test_gv_mult_3(self): bv_1 = aes.key_bv("01") self.assertEqual(aes.bv_hex_str(aes.gf_mult(bv_1,1)),'01',\ "testing gf_mult with 63 * 2 = c6")
def test_gv_mult_2(self): bv_2 = aes.key_bv("e0") self.assertEqual(aes.bv_hex_str(aes.gf_mult(bv_2,3)),'3b',\ "testing gf_mult with e0 * 3 = 3b")
def test_gv_mult_1(self): bv_1 = aes.key_bv("63") self.assertEqual(aes.bv_hex_str(aes.gf_mult(bv_1,2)),'c6',\ "testing gf_mult with 63 * 2 = c6")