Assignment for week 6: The goal is to implemennt a simple tool for symmetric encryption of a file with OpenSSL. Deadline: November 17, 2020 (8:00 AM), maximum is 10 points. Create a simple program that encrypts and decrypts an arbitrary file with AES-128 in CBC mode (using OpenSSL library) with fixed key: 00112233445566778899aabbccddeeff (in hexa) and fixed IV: 00000000000000000000000000000008 (in hexa). Your submitted archive (zip or tar) should contain one C program (and Makefile). Hints: - File names (input, output) and command (encrypt, decrypt) should be taken from command line arguments. - To access the file, you can use OpenSSL BIO functions or any other functions (you can use a file buffer for the whole file in memory; test files will be up to 64 MiB in size). - Properly handle errors. The file can be empty or not accessible; memory allocation can fail etc. - Do NOT use padding. The encrypted file MUST be the same size as the input. Input file size must be aligned to cipher encryption blocks (see EVP_CIPHER_CTX_set_padding). If the file is not aligned, fail the operation and print an error. The source code must be compilable on the provided virtual machine (Linux Fedora) or on aisa server.