This project implements a secure, shared encrypted file system (EFS) for multiple users. Users authenticate using a username, password, and a valid digital certificate. Each authenticated user gains access to their own home directory and can only view and manage their own files and directories. The system supports text, PDF, and image files, ensuring data security and integrity.
- Secure user authentication with digital certificates
- Encrypted file storage and retrieval
- User-specific home directories
- Integrity checks to prevent corrupted file usage
- File upload, download (with decryption), creation, and deletion
- Shared directory for controlled file sharing
- Support for at least three encryption and hashing algorithms
- Secure user account and certificate storage
- Programming Language: Java
- Cryptography: OpenSSL (via ProcessBuilder)
- Database: MySQL (using Hibernate for ORM)
- Security: Public Key Infrastructure (PKI) with an external CA
- File Handling: Encrypted storage with integrity verification