CoreTrust

Encrypted messaging without internet, SIM, or a server to trust. Messages hop from phone to phone over Bluetooth mesh.

Mesh E2EE No metadata
Scroll

Why this exists

Every mainstream messenger depends on two things: a working internet connection and a central operator who can observe who is talking to whom. CoreTrust removes both dependencies. It treats network metadata — not just message content — as something worth protecting.

Features

📡

Bluetooth mesh

Multi-hop message routing over BLE. No internet or cellular required.

🔐

End-to-end encryption

X25519 ECDH key exchange, AES-256-GCM payload encryption, HKDF-SHA256 key derivation.

🔁

Forward secrecy

Symmetric hash ratchet on every message, plus periodic full Diffie-Hellman re-keying.

🕵️

Metadata resistance

Rotating routing tags and generated cover traffic to frustrate traffic analysis.

🔑

Local security

Android Keystore-backed keys, encrypted Room database, biometric lock, panic wipe, FLAG_SECURE.

✅

Delivery confirmation

Lightweight ACK packets confirm a message actually arrived.

🪪

Deterministic identicons

Verify who you're talking to without phone numbers or usernames.

💬

Channels

Group conversations discovered and joined over the mesh.

🌍

On-device translation

ML Kit-powered; text never leaves the device.

Architecture

1

Identity & key exchange

Each device holds an X25519 keypair generated on first launch. Two devices in range perform an ECDH exchange and derive a shared session key via HKDF-SHA256 — no central key server, no identity tied to a phone number.

2

Forward secrecy

Every message advances a symmetric hash ratchet, so recovering one message key doesn't expose earlier or later ones. A full DH re-key runs periodically on top of that.

3

Metadata protection

Routing tags rotate instead of acting as persistent addresses, and a cover-traffic generator emits realistic dummy packets, making it harder for a passive observer to determine who is actually communicating.

4

On-device storage

Keys live in the Android Keystore (hardware-backed where supported); messages are stored in an encrypted Room database. A panic wipe destroys local data quickly and completely.

Threat model

🛡️ Protects against

  • Network-level eavesdropping (no ISP or server in the loop)
  • A central operator logging who talks to whom
  • Passive Bluetooth traffic analysis, via cover traffic and rotating routing tags

⚠️ Does not protect against

  • A compromised or physically seized, unlocked device
  • BLE's inherent short-range discoverability (nearby scanners can detect that a BLE device is present)
  • A well-resourced adversary doing RF-level analysis with specialized equipment

CoreTrust has not yet had an independent security audit. Until it does, treat it as a serious research/beta project rather than a hardened tool for high-risk situations.

Tech stack

Kotlin Android BLE (GATT) Android Keystore Room (encrypted) ML Kit GitHub Actions

Getting started

# Clone and build
git clone https://github.com/wocoboceo/coretrust.git
cd coretrust
./gradlew assembleDebug

Roadmap

Voice messages over mesh
Photo and file transfer
Independent cryptographic audit
iOS client