Post-quantum stealth transport - GPL-v3

YUME

YUME carries TCP and UDP through real TLS 1.3 sessions shaped like ordinary browser HTTPS. It layers a Chrome-style HTTP/2 carrier handshake, a real HTML facade for browser probes, hybrid ML-KEM-768 + AES-GCM inner crypto, and optional live key hopping into one buildable client and daemon pair.

2 binaries yume client and yumed daemon
26 artifacts Linux, BusyBox, OpenWRT, macOS, Windows
PQ inner crypto ML-KEM-768 plus AES-256-GCM
128 MiB target Minimal builds for small routers
Latest release
Loading...
Fetching date 0 assets
Download

Every target publishes both the client and daemon where that build is available. Hashes and optional detached signatures are listed on the hashes page.

Source

Build from the same tree

The release workflow builds from this repository with a pinned BaseFWX commit, required Argon2/OQS guards, and post-build binary inspection before upload.

Integrity and release trail

The release workflow publishes a machine-readable manifest plus per-artifact SHA256 and MD5 files. If GPG signing secrets are configured, detached signatures are uploaded and verified before release publication.

Checksums

Use the per-artifact .sha256 files or the aggregate SHA256SUMS.txt release asset.

Linux example
sha256sum -c yume-amd64-linux.sha256

Detached signatures

When signing keys are configured in CI, release assets include .sig sidecars.

GPG example
gpg --verify yume-amd64-linux.sig yume-amd64-linux

Manifest

release-manifest.json records component, OS, arch, size, SHA256, MD5, and signature sidecar names.

VirusTotal status

If the release workflow is configured with a VirusTotal API key, the latest scan report appears here and links to the official file report pages.

Loading VirusTotal results...
File Malicious Suspicious Undetected Report
Waiting for results...
Operator workflows

YUME keeps the normal path small: build, authorize a key, start the daemon, connect a client. The dangerous controls stay behind compile-time, runtime, and per-key gates.

01

Build

Full builds require BaseFWX, Argon2, OQS, OpenSSL, and LZMA. Minimal builds keep the router path small.

02

Authorize

authorized_keys controls who can connect. auth_keys.meta controls what each key can do.

03

Serve

yumed can share port 443 with a real HTML facade while YUME clients use the HTTP/2 carrier.

04

Connect

Clients use SOCKS, local forward, reverse forward, or command wrapping depending on the job.

Build

cmake -B build
cmake --build build -j$(nproc)

Server

sudo ./build/bin/yumed --listen 443 --cert certs/server.crt --key certs/server.key --auth-keys /etc/yume/authorized_keys --real --real-index certs/index.html

Client

./build/bin/yume --server example.com --auth ~/.yume/id_ed25519 --socks 1080
Free public endpoints

FixCraft plans to run public yumed endpoints that use the same daemon release published here. Hostnames, public keys, and fingerprints will be published before the fleet goes live.

No signup

Bring your own Ed25519 key. Endpoint policy will be published with the same auth-key fingerprint format used by the daemon.

Unmodified daemon

Endpoints run release builds from this tree so operators and users can audit the exact code path.

Browser facade

A normal browser sees a normal page on the same hostname and port that YUME clients tunnel through.

Compared to other tools

YUME's row is based on the live measurement documented in the performance page. Other rows are conservative and intentionally avoid provider-specific claims.

YUME WireGuard OpenVPN Tor bridges Shadowsocks
Hybrid post-quantum ML-KEM-768 no no no no
Live key hopping 1-4 Hz no no no no
Looks like HTTPS to DPI browser TLS + H2 carrier UDP signature protocol signature obfs4 bridge random prefix
Embedded hardware yes yes yes partial yes
Steady-state overhead < 1% typical near zero a few percent high low
License GPL-v3 GPL-v2 GPL-v2 BSD-3 Apache-2
Docs
Support