jj@portfolio:~/projects/encrypted-p2p-chatroom$ cat README.md
Encrypted P2P Chatroom
about
Peer-to-peer chat application with end-to-end encryption for secure communication. Uses ChaCha20-Poly1305 for message encryption, Ed25519 message signatures for user validation, and UDP multicast.
The Encrypted P2P Chatroom is a terminal-based Python chat application for machines on the same local network. There is no central server. Each peer joins an IPv4 UDP multicast group, runs a listener for incoming packets, announces itself periodically, and sends messages directly to the group.
I built it to work through applied cryptography and peer discovery in a small, inspectable protocol. JOIN packets advertise a username and public key, CHAT packets carry encrypted signed messages, and LEAVE packets tell the group when a peer exits.
security model
ChaCha20-Poly1305 provides authenticated encryption for message payloads, and Ed25519 signatures let recipients verify the sender. Peers cache the public keys announced during discovery and use them when a chat packet arrives.
This is a learning prototype, not production-secure messaging. Every peer shares one symmetric key, LEAVE messages are plaintext, and Python pickle is used for serialization. Those shortcuts make a LAN demo easy to follow, but they are exactly what I would replace before trusting the protocol with real messages.
screenshots — 3 files


