150

PySecNet

A from-scratch implementation of SSL/TLS-style secure communication in Python — "Python + Security + Network".

PySecNet is an open-source project that provides a simplified implementation of SSL/TLS (Secure Sockets Layer / Transport Layer Security) in Python.

This project focuses on key cryptographic components such as AES encryption, SHA-256 hashing, Diffie-Hellman key exchange, and RSA encryption for secure communication.

Key Features

Cryptographic Primitives: Essential cryptographic primitives ensuring data confidentiality, integrity, and authenticity.

Client-Server Architecture: A client-server architecture that allows secure communication between two parties.

SSL/TLS-like Functionality: Establishes secure connections and protects data during transmission.

Handshake Protocol: A handshake protocol inspired by SSL/TLS to negotiate cryptographic parameters and exchange keys securely.

PKI System: A basic Public Key Infrastructure (PKI) system for certificate generation, signing, and verification.

Interactive Choice: Choose to run the client or server, interactively or via command-line arguments.

This project serves as a practical resource for understanding and implementing secure communication protocols in Python. Feel free to explore and contribute.

Setup

Windows

python -m venv venv
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
venv\Scripts\activate
make install

Linux & macOS

python3 -m venv venv
source venv/bin/activate
make install

How to Use

make run
  • Select server and client in separate terminals.
  • Run 1 server and 2 clients.

Client GUI