Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Encrypted Email System (Local SMTP/POP3)

A complete, self-contained local email system featuring hybrid encryption (RSA + AES), custom SMTP and POP3 server implementations, and a Tkinter-based GUI client.

🚀 Features

  • Hybrid Encryption: Uses RSA for secure key exchange and AES-256 GCM for fast, authenticated message encryption.
  • Custom SMTP Server: A local SMTP server that handles incoming mail and stores them in encrypted mailboxes.
  • Custom POP3 Server: A local POP3 server for authenticated retrieval of emails.
  • Integrated GUI Client: A user-friendly interface to manage keys, login, compose encrypted emails, and read messages.
  • Local Storage: All emails and user data are stored locally in the data/ directory.

🛠️ Tech Stack

  • Language: Python 3.x
  • GUI Framework: Tkinter
  • Cryptography: cryptography library (Python)
  • Protocols: Custom SMTP (Port 2525) and POP3 (Port 2110)

📂 Project Structure

  • email_client.py: The main GUI application and encryption logic.
  • smtp_server_simple.py: Custom SMTP server implementation.
  • pop3_server.py: Custom POP3 server implementation.
  • run.sh / run.bat: Quick-start scripts for Linux and Windows.
  • requirements.txt: Project dependencies.

⚙️ Installation & Setup

  1. Clone the repository:

    git clone https://github.com/SheriPrime/minimalEmailClient.git
    cd "infoSec Project AG"
  2. Create a virtual environment (optional but recommended):

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies:

    pip install -r requirements.txt

🏃 Running the Application

The improved run.sh script now handles environment setup, virtual environment creation, and dependency installation automatically.

On Linux/macOS:

chmod +x run.sh
./run.sh

On Windows: You can still use the manual setup steps:

  1. python -m venv venv
  2. venv\Scripts\activate
  3. pip install -r requirements.txt
  4. python email_client.py

🔒 Security Workflow

  1. User Registration: Generates a 2048-bit RSA key pair. The private key is stored locally for decryption.
  2. Encryption:
    • A random AES key is generated for each email body.
    • The recipient's public key is used to encrypt the AES key (RSA).
    • The email content is encrypted using the AES key (GCM mode).
  3. Decryption: The recipient uses their private key to recover the AES key, then decrypts the email content.

Note: This project is intended for educational purposes in Information Security.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages