Releases: wireapp/core-crypto
Releases · wireapp/core-crypto
v1.0.0-rc.5
chore: release 1.0.0-rc.5
v1.0.0-rc.4
chore: release 1.0.0-rc.4
v1.0.0-rc.3
What's Changed
- Ensure that all operations do not leak data (uncleared from the keystore). This was mostly happening with update proposals & credential rotation. Also introduced a separate table for storing epoch keypairs.
- [BREAKING] as a consequence (of the new table) all existing conversations are becoming unusable. It is strongly advised to wipe them all.
- Fix method
e2eiRotateAll
was returning undefined on WASM - Add method
e2eiIsEnabled
to tell if a MLS client has a valid Credential for the given Ciphersuite - [BREAKING] rename
intoe2eiIsDegraded
e2eiConversationState
which returns now an enumeration giving the state of the conversation regarding end-to-end identity. - Adapt CI to execute WASM tests with chromedriver 115
Full Changelog: v1.0.0-rc.3...v1.0.0-rc.2
v1.0.0-rc.2
v1.0.0-rc.2
v1.0.0-rc.1
What's Changed
- [BREAKING] With this release, CoreCrypto is now RFC9420 compliant.
- This will cause Draft-20 clients to be unable to process keypackages emitted by RFC clients; But the opposite isn't true as RFC clients will ignore the extraneous
Capabilities
Draft-20 clients emit.
- This will cause Draft-20 clients to be unable to process keypackages emitted by RFC clients; But the opposite isn't true as RFC clients will ignore the extraneous
- [BREAKING] With our update to UniFFI 0.24, the FFI & bindings have significant breaking changes
- Most if not all APIs are now
async
and will use the platform's executor thanks to UniFFI's integration with them. In terms of platforms, the consequences are the following:- Kotlin: Almost all APIs are now
suspend
- Swift: Almost all APIs are now
async
- TypeScript: A couple more APIs are now
async
compared to before
- Kotlin: Almost all APIs are now
- Some other things might have changed - the callbacks ABI has changed but this change should not affect users of our bindings as we try to erase those minute differences by wrapping everything in a stable API
- Most if not all APIs are now
- [BREAKING] CoreCrypto now handles self-commits sent by the backend and decrypted by the client.
- In a particular case, when the backend replays a commit, the client is not to blame.
- In that case,
decryptMessage
will return aSelfCommitIgnored
which you should catch and ignore. It means you are likely to already have merged this commit.
- In that case,
- In a particular case, when the backend replays a commit, the client is not to blame.
- [BREAKING] CoreCrypto now handles duplicate application or handshake messages.
- When such a case happens,
decryptMessage
will return aDuplicateMessage
error encapsulating aGenerationOutOfBound
error. The latter variant also has been removed.
- When such a case happens,
- [BREAKING] To mitigate unordered messages when joining with an external commit, incoming messages are now buffered until you merge the external commit with
mergePendingGroupFromExternalCommit
.- At that point they are replayed and their result return in the method return type ; hence make sure to read and handle it!
- Note that for messages arriving during the external commit merge window,
decryptMessage
will return aUnmergedPendingGroup
error which means the edge case has been identified and the message will be reapplied later; so feel free to catch and ignore this error.
- [SEMI-BREAKING] CoreCrypto now prevents overwriting an existing conversation when creating a new conversation, joining one with a Welcome or joining with an external commit.
- This is within an effort to harden our data storage policies and to provide better feedback to API consumers as to what is actually happening.
- This change also is a breaking behavior change - But you should not be abusing the existing mechanic anyway to replace conversations as this was an unintended bug
- Our CI is now building the Swift bindings with Xcode 14.3.1
- We managed to reduce the size of our libraries by stripping them afterwards
- [EXPERIMENTAL] This version of CoreCrypto is the first to ship with a Proteus compatibility layer that uses the same cryptographic primitives as the MLS counterparts
- This yields in practice performance gains between 20% and 900% depending on the type of operation
- Again, as this is an experimental change, things might break.
Full Changelog: v1.0.0-pre.6...v1.0.0-rc.1
v1.0.0-pre.8
v1.0.0-pre.8
v1.0.0-pre.7
v1.0.0-pre.7
v1.0.0-pre.6
build: release 1.0.0-pre.6
v1.0.0-pre.6
What's Changed
- feat!: PostQuantum Ciphersuite support ! Using Xyber768 for Key Exchange.
- feat! Credential rotation support (for E2E Identity)
- feat!: remove
export_group_info()
method that wasn't used
Full Changelog: v1.0.0-pre.5...v1.0.0-pre.6
v0.9.2 for Xcode 14.3.1
v0.9.2-xcode-14.3.1 chore: backport xcframework support