Releases: wireapp/core-crypto
v5.2.0
v3.1.1
- This release bumps the version of rusty-jwt-tools to 0.13.0, which includes additional end-to-end identity tests and test markers relevant to Bund.
v5.1.0
v5.0.0
Highlights
New Swift bindings which are more ergonomic and allows for better testing by exposing the transaction
context as a protocol.
New API for observing epoch changes through a callback API: registerEpochObserver
. After adopting
this API clients can remove their own epoch observers.
Breaking changes
- New Swift bindings are replacing the old Swift bindings.
Features
- add API for observing epochs to the swift bindings (47f9a6e)
- [breaking] add Swift wrapper on top of uniffi (ce862d4)
- add
registerEpochObserver
helper in TS (1e25f4a) - add
registerEpochObserver
helper in Kotlin (bc05e13) - enable epoch observer registration in wasm (6a5f395)
- enable epoch observer registration in uniffi (e04b83e)
- relax
Debug
restriction onEpochObserver
(ff22e35) - add an
EpochObserver
trait and instance to the client (e83f9f5)
Bug Fixes
- android-uniffi library namespace was conflicting the main android library (a7ec292)
- kotlin documentation links on the main page (8045031)
- release swift framework with correct version (f1c6029)
- the android artefact was still trying to publish to nexus (0b1dfeb)
- make
EpochObserver
and registration fn visible from the outside (b4a16f8) - ensure that local epoch changes are also observed (bc43dc3)
Documentation
- add note about logs in browser tests (bf6b594)
Testing
v4.2.3
v4.2.2
v4.2.1
v4.2.0
Highlights
- The Android release once again bundles API docs.
- The Kotlin bindings have received several API fixes in particular:
- AcmeChallenge was missing the target property.
- proteusGetPrekeyFingerprint was missing.
- The Typescript bindings now correctly expose WireIdentity and X509Identity.
- The code base has migrated to Rust 2024 edition.
Bug Fixes
- expose target on AcmeChallenge (c509a3f)
- add missing proteus function (a956924)
- don't expose uniffi types in the kotlin bindings (988b7d0)
- publishing android docs (7b91f08)
- publicly expose WireIdentity and X509Identity in the typescript bindings (6592d4a)
- return the wasm bindgen generated JS type instead of converting the value to JSON. (3446920)
Testing
- add test case for querying identities (3c36cb5)
v3.1.0
- Add a test case mimicking a real life bug ([WPB-15810]), demonstrating that in some cases it was possible to generate errors by swapping the ordering of two messages.
- Add a new layer of buffering to handle that situation.
Note
Decrypting a message can now potentially return a MlsError::Other
variant with the message
Incoming message is a commit for which we have not yet received all the proposals.
Buffering until all proposals have arrived.
Clients do not need to take any action in response to this message.
This error simply indicates that the commit has been buffered, and will be automatically unbuffered when possible.
If the required proposal is never delivered, however, the client will eventually desync as the commit will never be processed. Clients should be on the lookout for this case and trigger their rejoin protocol in that event.
v4.1.0
Highlights
- Adds commit buffering, so that CoreCrypto is now tolerant to receiving a commit even if not all referenced proposals have yet been received.
- Adds a new public error variant,
BufferedCommit
, to indicate that a commit has been received but cannot yet be applied
⚠️ Versioning Note ⚠️
Due to the new public error variant, this may technically be a breaking change depending on how strict your language is about such things. This is of particular interest to Kotlin developers.