diff --git a/README.md b/README.md index 825d240f..e44a64cb 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,68 @@ -![Build Status](https://img.shields.io/github/actions/workflow/status/matrix-org/vodozemac/ci.yml?style=flat-square) -[![codecov](https://img.shields.io/codecov/c/github/matrix-org/vodozemac/main.svg?style=flat-square)](https://codecov.io/gh/matrix-org/vodozemac) -[![License](https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg?style=flat-square)](https://opensource.org/licenses/Apache-2.0) -[![Docs - Main](https://img.shields.io/badge/docs-main-blue.svg?style=flat-square)](https://matrix-org.github.io/vodozemac/vodozemac/index.html) -[![Docs - Stable](https://img.shields.io/crates/v/vodozemac?color=blue&label=docs&style=flat-square)](https://docs.rs/vodozemac) +

vodozemac

+
+ vodozemac is an implementation of Olm (Double Ratchet) and Megolm +

+ + +
+
+ + + + + + + + + +
+ + + + + + +
+
+
-A Rust implementation of Olm and Megolm +[vodozemac] is a pure Rust implementation of the [Olm] and [Megolm] +cryptographic ratchets, offering a high-level API for straightforward creation +of secure communication channels using these ratchets. -vodozemac is a Rust reimplementation of -[libolm](https://gitlab.matrix.org/matrix-org/olm), a cryptographic library -used for end-to-end encryption in [Matrix](https://matrix.org). At its core, it -is an implementation of the [Olm][olm-docs] and [Megolm][megolm-docs] 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][sas]. +Designed as a modern alternative to the [libolm] cryptographic library, which is +used for end-to-end encryption in [Matrix], vodozemac provides not only the +[Olm] and [Megolm] ratchets but also additional cryptographic features useful +for developing Matrix clients, such as [SAS] and the integrated encryption +scheme outlined in [MSC4108]. -[olm-docs]: - +[vodozemac]: https://hjp.znanje.hr/index.php?show=search_by_id&id=f19vXxZ%2F +[Olm]: https://gitlab.matrix.org/matrix-org/olm/-/blob/master/docs/olm.md +[Megolm]: https://gitlab.matrix.org/matrix-org/olm/-/blob/master/docs/megolm.md +[libolm]: https://gitlab.matrix.org/matrix-org/olm +[SAS]: https://spec.matrix.org/v1.2/client-server-api/#short-authentication-string-sas-verification +[Matrix]: https://matrix.org +[MSC4108]: https://github.com/matrix-org/matrix-spec-proposals/pull/4108 -[megolm-docs]: - +# Documentation -[sas]: - +Explore how to implement end-to-end encryption in our [documentation]. -# Features +[documentation]: https://docs.rs/vodozemac/latest/vodozemac/ -## Supported +# Installation -- [Olm](https://matrix-org.github.io/vodozemac/vodozemac/olm/index.html) -- [Megolm](https://matrix-org.github.io/vodozemac/vodozemac/megolm/index.html) -- libolm pickle format (read-only) -- Modern pickle format -- [SAS (Short Authentication Strings)](https://matrix-org.github.io/vodozemac/vodozemac/sas/index.html) +To install add the following to your project's `Cargo.toml`: -## Unsupported +```toml +[dependencies] +vodozemac = "0.7.0" +``` -- Creating asymmetric [server-side message key - backups][legacy-message-key-backup], since these have been implemented in - [matrix-sdk-crypto]. +# Security Notes -[legacy-message-key-backup]: - +This crate has received one security [audit] by [Least Authority], with no +significant findings. -[matrix-sdk-crypto]: - - -## Planned - -- Primitives for the asymmetric authenticated [server-side message key backups][authenticated-message-key-backup]. - -[authenticated-message-key-backup]: - +[audit]: https://matrix.org/media/Least%20Authority%20-%20Matrix%20vodozemac%20Final%20Audit%20Report.pdf +[Least Authority]: https://leastauthority.com/ diff --git a/contrib/zemi.png b/contrib/zemi.png new file mode 100644 index 00000000..8a2dec5d Binary files /dev/null and b/contrib/zemi.png differ