← Back to Projects

AESend

Try live demo ›
View source ›

Overview

AESend is an end-to-end encrypted messaging platform. There are no accounts or passwords — just cryptographic keys. You register a username and generate an RSA key pair in your browser. Your public key is uploaded to the server; your private key never leaves your device. Anyone can send you encrypted messages that only you can read.

Architecture

All cryptography is performed client-side via the Web Crypto API. AESend uses a hybrid encryption scheme: each message is encrypted with a fresh symmetric key, which is itself encrypted under the recipient’s public key.

Let (pk,sk)(pk, sk) denote the recipient’s 4096-bit RSA-OAEP public key, secret key pair. To send a message mm, the sender’s browser:

The tuple (c,w,iv)(c, w, iv) is sent to the server. Since GCM provides authenticated encryption, cc guarantees both confidentiality and integrity of mm. Without sksk, none of the transmitted values reveal anything about the plaintext.

To decrypt, the recipient computes:

The private key sksk never leaves the recipient’s device. The server stores only opaque ciphertext.

Stack: Web Crypto API \cdot FastAPI \cdot SQLite