Encrypted FUSE filesystem backed by Telegram cloud storage. Files leave your machine already opaque. Keys never leave your device. What Telegram holds is meaningless to anyone who asks.
Telegram is a cloud storage provider with billions of users, persistent free storage, and infrastructure in jurisdictions around the world. tgcryptfs uses it as a dumb block store uploading content-defined, encrypted chunks that look like random noise to anyone inspecting them.
The metadata database has BLAKE3-hashed table names, column names, and index names so even the schema reveals nothing. Telegram's engineers could look directly at the data in your account and learn nothing about your files.
This isn't a clever trick it's the result of encrypting everything, cryptographically opaquing everything, before it leaves your device. The cloud just holds blocks. You hold the meaning.
tgcryptfs mounts as a standard FUSE filesystem. Your applications don't know there's encryption happening. Your text editor, your code, your scripts they read and write files normally.
Encryption happens transparently on write. Decryption happens transparently on read. The FUSE layer intercepts the filesystem calls, applies crypto, and syncs with Telegram. You see files. Telegram sees blocks.
Because the storage backend is Telegram, any machine you authenticate on can access the same volumes. Your laptop, your desktop, your remote server mount the same volume, work seamlessly.
Share volumes with colleagues using ML-KEM-768 key exchange. Grant read-only or read-write access. Issue time-limited invite links that expire. Revoke access without re-encrypting. Forward secrecy via epoch-based key rotation means past access doesn't unlock future data.
If you stop checking in heartbeat missing, network unreachable, conditions you define the dead man's switch destroys your encryption keys. Not the data. The keys. Your data becomes permanently inaccessible.
This matters in coercion scenarios. If someone forces you to "unlock" your storage, the keys no longer exist. There is nothing to hand over. The data is meaningless forever.
A hash-chained audit log records every trigger event. A grace period gives you time to disarm if you simply missed a check-in. Configure the conditions yourself time-based, network-based, or custom signals.
Store source contacts, unpublished research, and sensitive documents somewhere that looks like your personal Telegram account. Plausible deniability via opaque blobs.
Credentials, private keys, pentest notes, client data. Everything encrypted before it touches any network. Dead man's switch in case your equipment is seized.
Share encrypted volumes without shared infrastructure. No self-hosted server, no shared S3 bucket. Everyone has their own keys. Sharing is explicit and revocable.
Written in Rust. A proof of concept that asks: what if your cloud had no idea what it was storing? tgcryptfs answers that question.