Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.x] Externalize storage #211

Open
1 of 5 tasks
tomleavy opened this issue Nov 11, 2024 · 1 comment
Open
1 of 5 tasks

[1.x] Externalize storage #211

tomleavy opened this issue Nov 11, 2024 · 1 comment

Comments

@tomleavy
Copy link
Contributor

tomleavy commented Nov 11, 2024

Background:

As part of our 1.x goals, we want to externalize all storage objects that interact with mls-rs so internal functionality is not directly dependent on a user-provided storage mechanism.

Key Package Storage

Currently building a client requires that you provide an implementation of the KeyPackageStorage trait that we define in mls-rs-core. A Client uses this to maintain storage on your behalf when certain operations take place:

When a key package is generated with Client::generate_key_package_message, the Client will store the associated private key in the KeyPackageStorage implementation

When a group is joined with Client::join_group, the Client will first retrieve the private key that corresponds with the key package that was used to add it to the group and also delete that private key when the resulting Group is saved.

PSK Storage

PSK storage is currently set when building a client and is consumed whenever a PSK is required:

Group State Storage

Group State Storage is currently set when building a client and has three functions:

@mulmarta
Copy link
Contributor

PSK is also used in Client::external_commit_builder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants