def Decrypt_File(filename,keyFile): try: DecryptionFile = open(filename, 'r') except IOError: raise IOError #keyFile = pickle.load(DecryptionFile) key = Core.convert_block(keyFile) msg = pickle.load(DecryptionFile) IVFile = msg[0:BLOCK_SIZE] line = msg[BLOCK_SIZE:] IV = Core.convert_block(list(IVFile)) DecryptedText = Core.remove_nulls(Decrypt_all_blocks(line, key, IV)) DecryptionFile = open(filename, 'wb') DecryptionFile.write((DecryptedText+"\n")) DecryptionFile.close()
def TextButton(self,choice): global key, IV, EncryptedText self.entry2.delete(1.0, END) if (choice == 1): self.keyEntry.delete(0, 'end') message = self.entry1.get(1.0, END) key = Core.keyGenerator() IV, EncryptedText = Encrypt.Encrypt_all_blocks(message, key) msg = '' keyString = '' for x in key: keyString += chr(x) self.keyEntry.insert(0, keyString) IVString = '' for x in IV: IVString += chr(x) msg += IVString msg += EncryptedText self.label2.configure(text="Encrypted Text :") self.entry2.insert(1.0, msg) self.status.configure(text="Encryption complete.", bg='light green') else: msg = self.entry1.get("1.0", 'end-1c') keyString = self.keyEntry.get() keyList = [] if len(keyString)!=BLOCK_SIZE: self.status.configure(text="Key Length Error.",bg='orange') return for x in range(0, BLOCK_SIZE): keyList.append(ord(keyString[x])) IVList = [] for x in range(0, BLOCK_SIZE): IVList.append(ord(msg[x])) EncryptedTextActual = msg[BLOCK_SIZE:] DecryptedText = Core.remove_nulls(Decrypt.Decrypt_all_blocks(EncryptedTextActual, keyList, IVList)) self.label2.configure(text="Decrypted Text :") self.entry2.insert(1.0, DecryptedText) self.status.configure(text="Decryption complete.", bg='light green')