Skip to content

Releases: wireapp/core-crypto

v1.0.0-rc.5

31 Jul 16:02
Compare
Choose a tag to compare
chore: release 1.0.0-rc.5

v1.0.0-rc.4

31 Jul 14:01
Compare
Choose a tag to compare
chore: release 1.0.0-rc.4

v1.0.0-rc.3

31 Jul 12:17
Compare
Choose a tag to compare

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 e2eiIsDegraded into 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

25 Jul 11:24
v1.0.0-rc.2
Compare
Choose a tag to compare
v1.0.0-rc.2

v1.0.0-rc.1

21 Jul 09:26
Compare
Choose a tag to compare

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.
  • [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
    • 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
  • [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 a SelfCommitIgnored which you should catch and ignore. It means you are likely to already have merged this commit.
  • [BREAKING] CoreCrypto now handles duplicate application or handshake messages.
    • When such a case happens, decryptMessage will return a DuplicateMessage error encapsulating a GenerationOutOfBound error. The latter variant also has been removed.
  • [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 a UnmergedPendingGroup 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

18 Jul 12:06
v1.0.0-pre.8
Compare
Choose a tag to compare
v1.0.0-pre.8

v1.0.0-pre.7

17 Jul 16:54
v1.0.0-pre.7
Compare
Choose a tag to compare
v1.0.0-pre.7

v1.0.0-pre.6

06 Jul 13:44
Compare
Choose a tag to compare
build: release 1.0.0-pre.6

v1.0.0-pre.6

06 Jul 13:15
Compare
Choose a tag to compare

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

21 Jun 09:46
Compare
Choose a tag to compare
v0.9.2-xcode-14.3.1

chore: backport xcframework support