Persistence of Group Data
The state of a given MlsGroup
instance is continuously written to the configured
StorageProvider
. Later, the MlsGroup
can be loaded from the provider using
the load
constructor, which can be called with the respective storage provider
as well as the GroupId
of the group to be loaded. For this to work, the group
must have been written to the provider previously.
Forward-Secrecy Considerations
OpenMLS uses the StorageProvider
to store sensitive key material. To achieve forward-secrecy (i.e. to prevent an adversary from decrypting messages sent in the past if a client is compromised), OpenMLS frequently deletes previously used key material through calls to the StorageProvider
. StorageProvider
implementations must thus take care to ensure that values deleted through any of the delete_
functions of the trait are irrevocably deleted and that no copies are kept.