from luks import LuksFile import zlib, sys, getpass if len(sys.argv) < 2: print "Usage: decrypt.py " sys.exit(1) f = open(sys.argv[1], "rb+") luks=LuksFile() luks.load_from_file(f) print "Version: " + str(luks.version) print "Mode: " + luks.cipherName + " " + luks.cipherMode + " " + luks.hashSpec print "UUID: " + luks.uuid print "Enabled keys: " + str(luks.enabled_key_count()) for i in range(0, 8): print "Key %i" % i, luks.key_information(i) pw = getpass.getpass() if luks.open_any_key(pw) != None: if len(sys.argv) > 2: length = sys.argv[2] else: length = luks.data_length() print "Data Length: %i" % int(length) data = luks.decrypt_data(0, int(length)) if len(sys.argv) > 3: data = zlib.decompress(data) print data luks.close()