def inv_cipher(data, key, N_k): r = 0 rounds = get_rounds(N_k) data = create_state_block(data) logger.input(r, data) key_sch = key[-4:] logger.k_sch(r, key_sch) addRoundKey(data, key_sch) for r in range(rounds-2, 0, -1): logger.start(rounds-r-1, data) inv_shiftRows(data) logger.shift_row(rounds-r-1, data) inv_subBytes(data) logger.sub_byte(rounds-r-1, data) key_sch = key[4*(r):4*(r+1)] logger.k_sch(rounds-r-1, key_sch) addRoundKey(data, key_sch) logger.ik_add(rounds-r-1, data) inv_mixColumns(data) logger.start(rounds-r, data) inv_subBytes(data) logger.sub_byte(rounds-r, data) inv_shiftRows(data) logger.shift_row(rounds-r, data) key_sch = key[0:4] logger.k_sch(rounds-r, key_sch) addRoundKey(data, key_sch) logger.output(rounds-r, data) return convert_block_to_stream(data)
def cipher(data, key, N_k): r = 0 rounds = get_rounds(N_k) data = create_state_block(data) logger.input(r, data) key_sch = key[0:4] logger.k_sch(r, key_sch) addRoundKey(data, key_sch) for r in range(1, rounds - 1): logger.start(r, data) subBytes(data) logger.sub_byte(r, data) shiftRows(data) logger.shift_row(r, data) mixColumns(data) logger.mix_column(r, data) key_sch = key[4 * r:4 * (r + 1)] logger.k_sch(r, key_sch) addRoundKey(data, key_sch) r += 1 logger.start(r, data) subBytes(data) logger.sub_byte(r, data) shiftRows(data) logger.shift_row(r, data) key_sch = key[-4:] logger.k_sch(r, key_sch) addRoundKey(data, key_sch) logger.output(r, data) return convert_block_to_stream(data)
def writeToFile(command): file = open(stateFiles.getScriptOutputFilePath(), 'w') file.write(command + '\n') file.close() logger.output()
def writeToFile(command): file = open(os.path.expanduser(OUTPUT_FILE), 'w') file.write(command + '\n') file.close() logger.output()
def appendToFile(command): file = open(stateFiles.getScriptOutputFilePath(), "a") file.write(command + "\n") file.close() logger.output()