9 def create_header(key, version, iv, random, size):
10 header = struct.pack('32s32s32s32s32s', key, version, iv, random, size)
14 def create_output(args):
15 in_st = os.stat(args.input_file)
16 in_size = in_st.st_size
18 key = "".encode('ascii')
19 version = args.version.encode('ascii')
20 iv = "".encode('ascii')
21 random = "".encode('ascii')
22 size = str(in_size).encode('ascii')
23 header = create_header(key, version, iv, random, size)
25 out_f = open(args.output_file, 'w+b')
30 md5.update(header[0x60:0x80])
31 md5.update(header[0x20:0x40])
35 md5.update(header[0x80:0xA0])
36 md5.update(header[0x20:0x40])
41 key_f = open(args.key_file, 'w+b')
42 key_f.write(binascii.hexlify(bytearray(key)))
45 print("AES 256 CBC Key:", binascii.hexlify(bytearray(key)))
50 parser = argparse.ArgumentParser(description='')
52 parser.add_argument('--input-file',
58 parser.add_argument('--key-file',
62 help='AES 256 CBC Key File')
64 parser.add_argument('--output-file',
70 parser.add_argument('--version',
76 args = parser.parse_args()
78 if ((not args.input_file) or
79 (not args.key_file) or
80 (not args.output_file) or