Crear un programa cliente/servidor que permita transferir archivos
Para el segundo punto se sugiere usar una estructura que contenga:
Para poder generar el hash MD5 se sugiere usar la librería libssl
Un ejemplo de uso de la librería lo puede encontrar en mi repo de presentaciones
Para instalar la librería:
sudo apt install libssl-dev
Para compilar el programa md5.c:
gcc -o md5 md5.c -lssl -lcrypto
Para probar el programa:
./md5 < mi-archivo-de-prueba.txt
También se puede usar la librería libgcrypt (ver detalles en md5-sha1.txt) pero hay que hacer todo en memoria.