This crate defines a number of crates that have to be implemented in order to use OpenMLS.
The OpenMLS repository provides a default implementation for these traits
There are 4 different traits.
This trait defines two functions to generate arrays and vectors, and is used by OpenMLS to generate randomness.
This trait defines all cryptographic functions required by OpenMLS, in particular
- HKDF
- Hashing
- AEAD
- Signatures
- HPKE
This trait defines a CRUD API for a key store that is used to store long-term key material from OpenMLS.
Additionally, there's a wrapper trait defined that is expected to be passed into the public OpenMLS API.
For interoperability this crate also defines a number of types and algorithm identifiers.