def change_key(self, master_key):
if (len(master_key)*8 not in (128, 192, 256)):
raise InvalidInputException('Error: Master key must be \
128, 192 or 256 bit')
self.__master_key = master_key
self.__aes_ecb = AES.new(self.__master_key, AES.MODE_ECB)
self.__auth_key = bytes_to_long(self.__aes_ecb.encrypt(b'\x00' * 16))
# precompute the table for multiplication in finite field
table = [] # for 8-bit
for i in range(16):
row = []
for j in range(256):
row.append(gf_2_128_mul(self.__auth_key, j << (8 * i)))
table.append(tuple(row))
self.__pre_table = tuple(table)
self.prev_init_value = None # reset
评论列表
文章目录