Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
def Encrypt_all_blocks(plaintext, key):
    plaintext_list = Core.convert_to_block(plaintext)
    Bit_List = Core.convert_to_ASCII(plaintext_list)
    IV = Core.keyGenerator()
    temp = IV[:]
    cipher = []
    for block in Bit_List:
        AfterXOR = Core.XOR_previous_block(block, temp)
        cipher_block = encrypt_block(AfterXOR, key)
        cipher.append(cipher_block)
        temp = cipher_block
    EncryptedText = Core.convert_all_blocks_to_chars(cipher)
    return IV, EncryptedText
Ejemplo n.º 4
0
 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')