explaingit

softdeadlock/voron-crypto

Analysis updated 2026-05-18

1KotlinAudience · developerComplexity · 5/5Setup · moderate

TLDR

The encryption and protocol core of an E2EE messenger, published standalone so outside developers can review its cryptography for bugs.

Mindmap

mindmap
  root((Voron crypto))
    What it does
      E2EE protocol core
      Requests external review
      1-to-1 and group crypto
    Tech stack
      Kotlin
      Gradle
      Curve25519
    Use cases
      Security review
      Study crypto protocols
      Run exploit PoCs
    Audience
      Security researchers
      Crypto developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Review the X3DH-lite and Double Ratchet implementation for cryptographic flaws before it ships in a real messenger.

USE CASE 2

Study a working example of sender-keys group encryption and a client-side signed hash-chain membership log.

USE CASE 3

Run the included proof-of-concept exploits and fuzzing harness against the reference relay server.

USE CASE 4

Learn how an onion-routed transport hides which IP address maps to which identity key on a relay.

What is it built with?

KotlinGradleCurve25519ChaCha20-Poly1305JDK

How does it compare?

softdeadlock/voron-cryptomfori/bit-aesnacode-studios/kdrant
Stars111
LanguageKotlinKotlinKotlin
Last pushed2020-05-11
MaintenanceDormant
Setup difficultymoderatemoderatemoderate
Complexity5/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Unit tests run offline via Gradle, the relay-fuzzing and onion-correlation proofs of concept need local processes running.

The README does not state a license, so terms of use are unclear.

In plain English

Voron crypto is the encryption and messaging protocol core of a small end to end encrypted messenger project, published on its own to ask outside developers to review it for security problems. It does not include the phone app or deployment setup, only the underlying cryptography and protocol code. The library builds one to one private conversations using an asynchronous key agreement method similar to the Signal protocol's X3DH, followed by a Double Ratchet that keeps rotating encryption keys as messages are exchanged, so that even if a key is later exposed, past and future messages stay protected. These pieces are built on well established primitives like Curve25519, ChaCha20-Poly1305, Ed25519, and HKDF, rather than custom cryptography at that lower level. Group conversations use a simpler sender-keys scheme, the approach early WhatsApp and Signal groups used, plus a signed hash chain log that records membership and role changes on the client side, since the relay server has no built in concept of groups. There is also an optional onion style transport that sends messages through a fixed number of encrypted hops and pads them to consistent sizes, so a relay only sees one hop of a conversation and cannot easily link a connection's network address to the identity behind it. The project states plainly that this does not protect against an attacker watching both ends of a conversation at once, since that would require cover traffic that has not been built. The relay server is intentionally minimal and treated as untrusted: it forwards encrypted messages and public key material without ever seeing plaintext, and is assumed to potentially be actively hostile. A folder of prior internal security review write ups is included, along with working proof of concept exploits for bugs already found and fixed, and reviewers are asked to check that folder first before reporting something that may already be documented. The authors are upfront that no independent professional security audit has been done. All existing review is by the project's own contributors, presented as a starting point for outside review, not a certification. It is a Kotlin project built with Gradle, requiring JDK 17 or newer to run its test suite.

Copy-paste prompts

Prompt 1
Help me review the X3DH-lite to Double Ratchet integration in voron-crypto for security issues.
Prompt 2
Explain how voron-crypto's sender-keys group scheme differs from a full MLS/TreeKEM design.
Prompt 3
Walk me through running voron-crypto's Gradle test suite and the relay-fuzzing proof of concepts.
Prompt 4
Summarize the threat model in voron-crypto's security-audit folder for me.

Frequently asked questions

What is voron-crypto?

The encryption and protocol core of an E2EE messenger, published standalone so outside developers can review its cryptography for bugs.

What language is voron-crypto written in?

Mainly Kotlin. The stack also includes Kotlin, Gradle, Curve25519.

What license does voron-crypto use?

The README does not state a license, so terms of use are unclear.

How hard is voron-crypto to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is voron-crypto for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.