A Rust implementation of Olm and Megolm
vodozemac is a Rust reimplementation of libolm, a cryptographic library used for end-to-end encryption in Matrix. At its core, it is an implementation of the Olm and Megolm cryptographic ratchets, along with a high-level API to easily establish cryptographic communication channels employing those ratchets with other parties. It also implements some other miscellaneous cryptographic functionality which is useful for building Matrix clients, such as SAS.
- Olm
- Megolm
- libolm pickle format (read-only)
- Modern pickle format
- SAS (Short Authentication Strings)
- Creating asymmetric server-side message key backups, since they are slated to be enhanced with authentication.
- Asymmetric authenticated server-side message key backups.
- Importing asymmetric server-side message key backups, for compatibility with existing backups created by libolm.