python software
Task: Given a text file, write a software program that allows to:
- Encrypt the text file using symmetric key algorithm (AES)
- Decrypt a text file using symmetric key algorithm (AES)
- Generate an asymmetric key pair (public and private)
- Encrypt the text file using the public key (RSA)
- Decrypt the text file using the private key (RSA)
- Generate the hash digest of the text file (MD5)
- Share a symmetric key between a client and server using Diffie-Hellman protocol.