summaryrefslogtreecommitdiffstats
path: root/libraries/olm/README
blob: fcdee97450efd22e39194a5540e07a0e90ebf423 (plain)
olm (olm and megolm cryptographic ratchets)

An implementation of the Double Ratchet cryptographic ratchet described by
https://whispersystems.org/docs/specifications/doubleratchet/, written in 
C and C++11 and exposed as a C API.

The specification of the Olm ratchet can be found in olm.md.

This library also includes an implementation of the Megolm cryptographic 
ratchet, as specified in megolm.md.

Olm is designed to be easy port to different platforms and to be easy to 
write bindings for.

It was originally implemented in C++, with a plain-C layer providing the 
public API. As development has progressed, it has become clear that C++ 
gives little advantage, and new functionality is being added in C, with 
C++ parts being rewritten as the need arises.