Wire's Rust implementation of the Double Ratchet Algorithm


This repository is part of the source code of Wire. You can find more information at wire.com or by contacting opensource@wire.com .

You can find the published source code at github.com/wireapp .

For licensing information, see the attached LICENSE file and the list of third-party licenses at wire.com/legal/licenses/ .


Proteus is an implementation of the axolotl protocol (later renamed to Double Ratchet Algorithm) without header keys. It is suitable for use in asynchronous environments through its use of prekeys .

The roles of the axolotl protocol for a particular session are fixed through the use of prekeys:

  • The side that obtains a prekey and uses it to initiate a session is Alice .

  • The side that receives a prekey message and uses it to initiate a session is Bob .

All cryptographic primitives used in the implementation of the protocol are provided by libsodium :

For serialisation of messages, sessions and keys, CBOR is used. The precise serialisation format is described in the wiki .

关键词:算法 Rust


The new CEO of super-private messaging app Wire, which is backed by Skype's cofounder, expl...

Converting UTC to Local Time via Azure Functions and Logic Apps

Love the Netflix Marvel shows? Don’t worry, the Disney streaming service can’t touch them

Arlo is already the best wireless home security camera, but these 5 accessories make it eve...

Working with Multiple Cloud Providers – Part 3 – Linking Azure and GCP

Writing GUI Apps Using the Red Programming Language

An opinionated guide to building APIs with Akka-Http

This silent coffee grinder will save your ears and break your caffeine habit

Cyber Monday deals: everything but the kitchen sink

How citus executes distributed transactions