def Encrypt_File(filename,keyText=None): try: EncryptionFile = open(filename, 'rb') except IOError: raise IOError fileContent = EncryptionFile.read() EncryptionFile.close() key = [] if keyText==None: key = Core.keyGenerator() else: key = Core.convert_block(list(keyText)) IV, EncryptedText = Encrypt_all_blocks(fileContent,key) tempiv = ''.join(Core.convert_to_chars(IV)) Final = tempiv+EncryptedText #for i,line in enumerate(fileContent): #IV.append(None) # EncryptedText.append(None) #IV[i], EncryptedText[i] = Encrypt_all_blocks(line[:-1], key) #Final.append([tempiv,EncryptedText[i]]) keyFile = ''.join(Core.convert_to_chars(key)) EncryptionFile = open(filename, 'w') #pickle.dump(keyFile, EncryptionFile) pickle.dump(Final,EncryptionFile) EncryptionFile.close() return keyFile
def TextButton3(self,event, option): if option == 1: path = self.entry1.get() self.keyEntry.delete(0, 'end') originalDirectory = os.getcwd() try: os.chdir(path) except WindowsError: self.status.configure(text="Path is invalid!", bg='red') return keyText = ''.join(Core.convert_to_chars(Core.keyGenerator())) DirectoryList = os.listdir(os.getcwd()) for i, fileName in enumerate(DirectoryList): keyText = Encrypt.Encrypt_File(fileName, keyText) self.status.configure(text="Encrypted %d out of %d files" % (i, len(DirectoryList)), bg='orange') self.keyEntry.insert(0, keyText) self.status.configure(text="Folder Encryption complete.", bg='light green') else: originalDirectory = os.getcwd() path = self.entry1.get() try: os.chdir(path) except WindowsError: self.status.configure(text="Path is invalid!", bg='red') return DirectoryList = os.listdir(os.getcwd()) for i, fileName in enumerate(DirectoryList): KeyText = self.keyEntry.get() self.status.configure(text="Decrypted %d out of %d files" % (i, len(DirectoryList)), bg='orange') Decrypt.Decrypt_File(fileName, KeyText) self.status.configure(text="Folder Decryption complete.", bg='light green') os.chdir(originalDirectory)