// SECURE • DECENTRALIZED • OPEN

Peer2Pear

End-to-End Encrypted Peer-to-Peer
Messaging & File Sharing

Qt / C++17 libsodium Noise IK Double Ratchet ICE / NAT Traversal

CMP_SC 4980 • Senior Capstone Design II

Scroll

Centralized systems are broken by design.

Most messaging today routes through centralized servers that can log metadata, suffer outages, or be subpoenaed. A single point of failure means your conversations, files, and privacy are always at risk.

Single Point of Failure

Server outages take everyone offline

Surveillance Exposure

Central servers can log and leak metadata

No Data Sovereignty

Your data lives on someone else's hardware

Energy Waste

Always-on servers burn power 24/7

Peer2Pear connects you directly.

Peer 2 Pear is a decentralized peer-to-peer messaging application that enables secure, real-time communication without reliance on centralized servers. Every message and file is end-to-end encrypted with modern primitives from libsodium, and the relay server learns nothing about who sent what.

Direct peer-to-peer connections Group chat support E2E encryption Cross-platform desktop client

Responsible by design.

Strong Crypto Export

End-to-end encryption is regulated in some jurisdictions; we use only open, well-audited primitives.

Misuse Potential

Anonymity that protects journalists and dissidents can also shield bad actors. We do not implement backdoors.

User Responsibility

Out-of-band Peer ID exchange means users own trust decisions — no central authority verifies identities.

Data Retention

Local DB is encrypted with XChaCha20-Poly1305; passphrase loss means data loss, by design.

Built for privacy-first communication.

End-to-End Encryption

Every message and file is encrypted with modern libsodium primitives. Only sender and recipient can read the content.

Sealed Sender

An ephemeral X25519 envelope hides the sender's identity from relay servers. Even the infrastructure can't see who's talking.

Group Chats

Encrypted broadcast messaging to multiple members at once with full forward secrecy maintained per-session.

Secure File Transfer

Send files up to 25 MB with automatic 256 KB chunking, encryption, and reassembly on the other end.

Cross-Platform

Runs on Linux, macOS, and Windows with consistent performance. Built with Qt for native look and feel.

NAT Traversal

ICE/STUN/TURN via libnice punches through firewalls for direct connections, with mailbox relay as a fallback.

System Architecture

CLIENT A
Qt UI Double Ratchet SQLite (encrypted)
P2P direct or relay
TRANSPORT
ICE / NAT (libnice) P2P direct OR mailbox relay
E2E encrypted
CLIENT B
Qt UI Double Ratchet SQLite (encrypted)

Technologies

Qt 5 / Qt 6 GUI & framework
C++17 Application logic
libsodium Crypto primitives
libnice ICE / NAT traversal
SQLite Local encrypted storage
CMake + vcpkg Build system

Cryptographic Primitives

Built on battle-tested, open-source cryptographic foundations. No custom crypto, no backdoors, no compromises.

Ed25519
Identity keys
X25519
ECDH agreement
XChaCha20-Poly1305
AEAD encryption
BLAKE2b
Hash + KDF chains
Argon2id
Passphrase KDF
HKDF
Sub-key derivation

Key Algorithms

01

Noise IK Handshake

Establishes an authenticated session and sends a fresh ratchet DH key in the very first message.

02

Double Ratchet

Per-message keys with forward secrecy and post-compromise security. Compromising one key reveals nothing else.

03

Sealed Sender

Ephemeral X25519 envelope hides sender identity from the relay. The infrastructure is cryptographically blind.

From contact to encrypted chat in seconds.

01

Add a Contact

Exchange Peer IDs and establish a Noise IK session out-of-band.

02

Send a Message

Encrypted via Double Ratchet, wrapped in a Sealed Sender envelope.

03

Send a File

Chunked into 256 KB pieces, encrypted, transmitted, and reassembled.

04

Group Chat

Encrypted broadcast to multiple members with per-session keys.

Rigorously tested.

Unit Tests

198 test cases across CryptoEngine, NoiseState, RatchetSession, SealedEnvelope, SessionManager, SessionStore & DatabaseManager.

Integration Tests

FileTransferManager chunking & reassembly, NiceConnection P2P transport, MailboxClient & RendezvousClient relay protocols.

🌐

Network & System Tests

End-to-end encrypted messaging flows, group chat broadcast, NAT traversal scenarios, and post-quantum crypto handshake validation.

📝

UI & Manual UAT

ChatController interactions, contact management, message search, Qt widget rendering, and cross-platform smoke tests on Linux, macOS & Windows.

Tested Components

CryptoEngine NoiseState RatchetSession SealedEnvelope SessionManager SessionStore DatabaseManager FileTransferManager NiceConnection MailboxClient RendezvousClient ChatController Group Chat UI / Qt Widgets System / E2E Post-Quantum Crypto

Meet the team.

Zach Jones

Zach Jones

Team Lead & Protocol

  • libnice / ICE integration
  • NAT traversal logic
  • HTTP mailbox relay
Wyatt Kellett

Wyatt Kellett

Cryptography & Protocol

  • Noise IK handshake
  • Double Ratchet engine
  • Sealed Sender envelopes
Joseph Mun

Joseph Mun

UI / UX & Qt Frontend

  • Qt Widgets interface
  • Contact & chat views
  • File transfer & Messaging UI
Collin Wanta

Collin Wanta

Storage & Build System

  • Cross-platform builds
  • SQLite Database Implementation
  • Testing & Integration

Project Timeline

Phase 1

Research & Planning

Tech stack evaluation, architecture design, cryptographic protocol selection.

Phase 2

Crypto Core & Networking

Implemented Noise IK handshake, Double Ratchet, and ICE/NAT traversal.

Phase 3

UI & Storage Integration

Qt frontend, encrypted SQLite database, file transfer UI.

Phase 4

Testing & Polish

Cross-platform testing, security validation, group chat, search functionality.

Phase 5

Deployment & Demo

v0.1 build 19 — stable release with full feature set and live demonstration.

What's next.

01

Mobile Clients

Port the Qt UI or build native iOS/Android frontends sharing the C++ crypto core.

02

Voice & Video Calls

Encrypted real-time media over the existing P2P transport using SRTP.

03

Larger File Transfers

Lift the 25 MB cap with resumable, chunked uploads and progress reporting.

04

Federated Relays

Multiple interoperable mailbox relays so no single operator is critical.

05

Post-Quantum Crypto

Hybrid handshakes with Kyber / ML-KEM to harden against future quantum attacks.

06

Formal Verification

Model-check the protocol state machine to prove security properties.

Ready to take back your privacy?

Peer2Pear is open-source and free. Download the latest release or build from source.