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


[Deal Alert] Arlo Pro 2 add-on camera $175, 2-pack $400, and 2-pack with solar panel $465

Serverless with AWS Lambda & Scala

The bridge from C# to JavaScript – Hyperlambda

Towards a Brighter Future for Smart Contracts


Thomas Munro: SERIALIZABLE in PostgreSQL 11... and beyond

Skyway: connecting managed heaps in distributed big data systems

Updated Resilient Networking with Xamarin

What Makes Apache Flink the Best Choice for Streaming Applications?

Write Optimizations for Qualcomm Centriq 2400 in MariaDB 10.3.5 Release Candidate