Begin factoring out a CryptoBackend interface #2955
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of element-hq/element-web#21972. Eventually I want to replace the whole of the current
Crypto
implementation with an alternative implementation, but in order to get from here to there, I'm factoring out a common interface which will be implemented by both implementations.I'm also determined to fix the problem where the innards of the crypto implementation are exposed to applications via the
MatrixClient.crypto
property.It's not (yet) entirely clear what shape this interface should be, so I'm going with a minimal approach and adding things as we know we need them. This means that we need to keep the old
client.crypto
property around as well as a newclient.cryptoBackend
property. Eventuallyclient.crypto
will go away, but that will be a breaking change in the js-sdk.Currently based on #2958This change is marked as an internal change (Task), so will not be included in the changelog.