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.