Skip to content
This repository was archived by the owner on Mar 14, 2023. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions Assignment-1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# packages required
import os
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend

# Encryption Function
def encrypt_func(key, iv, message):
message = padding(message)
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend)
encryptor = cipher.encryptor()
return encryptor.update(message.encode('ascii')) + encryptor.finalize()

# Decryption Function
def decrypt_func(key, iv, ct):
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend)
decryptor = cipher.decryptor()
message = decryptor.update(ct) + decryptor.finalize()
message = depadding(message.decode('ascii'))
return message

# Function for making the msg bits multiple of 32
def padding(message):
message += " "*(32-len(message)%32)
return message


# Removing the added spaces
def depadding(message):
while message[-1] == ' ':
message = message[:-1]
if len(message) == 0:
break
return message


backend = default_backend()
key = os.urandom(32)
iv = os.urandom(16)
message = input("Enter the msg to be encrypted: ")
ciphertext = encrypt_func(key, iv, message)
print(f'Ciper Text : {ciphertext}')
decryptedmessage = decrypt_func(key, iv, ciphertext)
print(f'Decrypted Message : {decryptedmessage}')