diff --git a/CHANGELOG.md b/CHANGELOG.md
index 945766cead..28ddf80a73 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,97 +7,47 @@ Platform support legends:
* Note: the papercuts will majorly be with the build process. Things might be very rough to integrate as no polish at all has been given yet.
* ❌ = tier 3 support. It doesn't work just yet, but we plan to make it work.
-## [0.6.0] - 2023-02-13
+## [0.6.1] - 2023-02-16
git-conventional changelog
### Bug Fixes
-- Xtask release outputs dry-run log unconditionally
-
-### Features
-
-- Adapt with acme client library tested on real acme-server forked. Also some nits & dependencies pinned
+- Publishing for JVM generating empty artifacts ([#251](https://github.com/wireapp/core-crypto/issues/251))
+- Fall back on false when the callback doesn't retrurn a Promise
+- Proteus auto prekey might overwrite Last Resort prekey
### Miscellaneous Tasks
-- Release v0.6.0
+- Remove proteus double persistence as it's already automatically eager
-Platform support status:
-
-* x86_64-unknown-linux-gnu ✅
-* x86_64-apple-darwin ✅
-* armv7-linux-androideabi ✅
-* aarch64-linux-android ✅
-* i686-linux-android ✅
-* x86_64-linux-android ✅
-* aarch64-apple-ios ✅
-* aarch64-apple-ios-sim ✅
-* x86_64-apple-ios ✅
-* wasm32-unknown-unknown ✅
-
-### 0.6.0 Release changes
-
-* **[BREAKING CHANGE]** E2EI solution API overhauled from pre-release versions
- * This was made to fix some incompatibilities between the DPoP RFC and our code; The API had to be changed as a consequence
- * Please refer to the following point to see the changes
-* First stable version of Wire's end-to-end identity client library. It allows a MLS client to generate a x509 certificate proving possession of its userId, clientId and displayName for a given domain/backend. This certificate will later be used as a MLS credential in place of the only currently supported "basic" one which consists of a public key.
- * To generate such a certificate, use the `new_acme_enrollment` method on a partially initialized CoreCrypto instance. This will generate a temporary key material for the enrollment session with the ACME server. Note that only Ed25519 signature scheme is supported at the moment.
- * Only the "enrollment" flow is defined for the moment. Later on, "refresh" and "revocation" flows will be added.
- * This library is heavily opinionated and only suited for **Wire** custom flow, with [our fork of the acme server](https://github.com/wireapp/smallstep-certificates). Any attempt to use it as a generic purpose acme client library will fail terribly.
- * To make sure this works as expected, this library has been tested against the actual [acme-server](https://github.com/wireapp/smallstep-certificates) thanks to [testcontainers](https://www.testcontainers.org/). Only the OIDC provider has been mocked for the moment due to the fact that the target provider [Dex](https://github.com/dexidp/dex) does not yet support Ed25519 signatures.
-
-### 0.6.0 pre-release changes tl;dr, for information
+### 0.6.1 Release changes
-#### Changes
-
-* Added support for externally-generated MLS clients
- * This allows you to generate a standalone Credential/KeyPair, submit it to your MLS Authentication Service, and then update this credential with a newly-attributed Client ID.
-* Added APIs to support Proteus Last Resort Prekeys
-* Added support for Proteus error codes
- * WASM:
- * all errors are now instances of `CoreCryptoError` which extends the standard JavaScript `Error` but with additional properties:
- * `rustStackTrace` contains the original Rust error string.
- * `proteusErrorCode` contains the error code for Proteus calls. If it's 0, no error, otherwise it contains the code
- * WASM/TS now has access to the `CoreCrypto.proteusLastErrorCode()` method which allows to retrieve the last-occured proteus error and thus brings it to parity with other FFIs
- * On other platforms, the FFI has gained a `proteus_last_error_code` method.
-* Fixed a bug where the keystore would not execute its IndexedDB upgrade handler on WASM, leading to older stores and/or new tables not being structurally consistent
-* Added missing Proteus APIs to bindings and FFI:
- * `proteus_new_prekey_auto`: generates a new PreKeyBundle with an automatically incremented ID
- * To do this, CoreCrypto finds the first "free" ID within the `0..u16::MAX - 1` range and creates a PreKey using this ID.
-* Added Proteus compatibility layer support
-* Added API to export secret key derived from the group and client ids from the members
-* Change `DecryptedMessage` signature
- * The `decrypt` API now returns if the decrypted message changed the epoch through the `hasEpochChanged` field
-* Members can now rejoin group by external commits
- * Validate received external commits
- * Added `clear_pending_group_from_external_commit`
- * External commit returns a bundle containing the PGS
+* Fixed a bug where the last resort prekey could be overwritten.
+* Fixed JVM publishing creating broken packages.
+* Change WASM callback to return false by default if no promise is returned.
+* Remove redundant save when persisting proteus sessions.
+## [0.6.0] - 2023-02-13
-#### Breaking changes
+
+ git-conventional changelog
+### Bug Fixes
-* **[BREAKING CHANGE]** Changed callbacks to be async
- * This allows consumers to perform async I/O within the callbacks
- * **Note** this doesn't affect the Kotlin/Swift bindings as UniFFI does not support async yet.
-* **BREAKING** Renamed callback `client_id_belongs_to_one_of` to `client_is_existing_group_user`
-* **BREAKING** WASM: Omitted in last build; `CoreCrypto.deferredInit` now takes an object with the parameters much like `init()` for consistency reasons.
-* **BREAKING** No one was probably using it, but the C-FFI has been removed
+- Xtask release outputs dry-run log unconditionally
+### Features
-There has been an extensive pre-release period (with many -pre and -rc releases), the original changelog for those has been collapsed below:
+- Adapt with acme client library tested on real acme-server forked. Also some nits & dependencies pinned
-
- 0.6.0 pre-releases changelog
+### Miscellaneous Tasks
-## [0.6.0-rc.8] - 2023-02-09
+- Release v0.6.0
-
- git-conventional changelog
### Features
@@ -110,19 +60,6 @@ There has been an extensive pre-release period (with many -pre and -rc releases)
- Release v0.6.0-rc.8
- Updated webdriver version to chrome 110
-
-
-* Added support for externally-generated MLS clients
- * This allows you to generate a standalone Credential/KeyPair, submit it to your MLS Authentication Service, and then update this credential with a newly-attributed Client ID.
-* **[BREAKING CHANGE]** Changed callbacks to be async
- * This allows consumers to perform async I/O within the callbacks
- * **Note** this doesn't affect the Kotlin/Swift bindings as UniFFI does not support async yet.
-* Added APIs to support Proteus Last Resort Prekeys
-
-## [0.6.0-rc.7] - 2023-02-06
-
-
- git-conventional changelog
### Bug Fixes
@@ -134,18 +71,6 @@ There has been an extensive pre-release period (with many -pre and -rc releases)
- Release v0.6.0-rc.7
-
-
-* Fixed WASM build when imported from the outside
- * Made sure we're not leaking internal/private interfaces anymore and causing issues
- * Also added a test to our JS E2E suite to make sure importing the package with TS is successful and we do not encounter regressions like these anymore
-* **BREAKING** WASM: Omitted in last build; `CoreCrypto.deferredInit` now takes an object with the parameters much like `init()` for consistency reasons.
-
-
-## [0.6.0-rc.6] - 2023-02-01
-
-
- git-conventional changelog
### Bug Fixes
@@ -162,25 +87,6 @@ There has been an extensive pre-release period (with many -pre and -rc releases)
- Make npm build run wasm-opt in Os
- Update JVM publish workflow to build on native platforms ([#229](https://github.com/wireapp/core-crypto/issues/229))
-
-
-**IMPORTANT: The previous release (0.6.0-rc.5) is non-functional in general. The proteus error reporting does NOT work**
-
-There's a post mortem available here:
-
-* Fixed support for Proteus error codes
- * WASM:
- * all errors are now instances of `CoreCryptoError` which extends the standard JavaScript `Error` but with additional properties:
- * `rustStackTrace` contains the original Rust error string.
- * `proteusErrorCode` contains the error code for Proteus calls. If it's 0, no error, otherwise it contains the code
- * WASM/TS now has access to the `CoreCrypto.proteusLastErrorCode()` method which allows to retrieve the last-occured proteus error and thus brings it to parity with other FFIs
- * On other platforms, the API is unchanged, but now works.
-
-
-## [0.6.0-rc.5] - 2023-01-25
-
-
- git-conventional changelog
### Bug Fixes
@@ -197,25 +103,6 @@ There's a post mortem available here:
-
-* **BREAKING**: Changed the signature of the `client_is_existing_group_user` callback to add the group id as the first argument
- * Before: `client_is_existing_group_user(client_id: ClientId, existing_clients: Vec) -> bool`
- * After: `client_is_existing_group_user(conversation_id: ConversationId, client_id: ClientId, existing_clients: Vec) -> bool`
-* Added support for Proteus error codes
- * On WASM, the JS Error contains a `proteusError` method that returns the error code as an integer. If there's no error it returns 0.
- * On other platforms, the FFI has gained a `proteus_last_error_code` method.
-* Fixed a bug where the keystore would not execute its IndexedDB upgrade handler on WASM, leading to older stores and/or new tables not being structurally consistent
-* Updated RustCrypto dependencies
-* Tooling: moved code coverage CI from Tarpaulin to LLVM-Cov
- * This lowered the execution time of our codecov CI from ~25-30 minutes down to ~15-20 minutes
- * This leads to more accurate code coverage as well - along with some false negatives such as `#[derive]` statements
-
-
-## [0.6.0-rc.4] - 2023-01-20
-
-
- git-conventional changelog
### Bug Fixes
@@ -370,238 +257,220 @@ There's a post mortem available here:
-### Bug Fixes
-
-- Wire-server sends a base64 encoded ed25519 key afterall. Consumers are in charge of base64 decoding it and pass it to core-crypto
-- TS Ciphersuite enum not correctly exported
-
-### Documentation
+Platform support status:
-- Add installation instructions for e2e runner on macos
+* x86_64-unknown-linux-gnu ✅
+* x86_64-apple-darwin ✅
+* armv7-linux-androideabi ✅
+* aarch64-linux-android ✅
+* i686-linux-android ✅
+* x86_64-linux-android ✅
+* aarch64-apple-ios ✅
+* aarch64-apple-ios-sim ✅
+* x86_64-apple-ios ✅
+* wasm32-unknown-unknown ✅
-### Miscellaneous Tasks
+### 0.6.0 Release changes
-- Release v0.5.2
+* **[BREAKING CHANGE]** E2EI solution API overhauled from pre-release versions
+ * This was made to fix some incompatibilities between the DPoP RFC and our code; The API had to be changed as a consequence
+ * Please refer to the following point to see the changes
+* First stable version of Wire's end-to-end identity client library. It allows a MLS client to generate a x509 certificate proving possession of its userId, clientId and displayName for a given domain/backend. This certificate will later be used as a MLS credential in place of the only currently supported "basic" one which consists of a public key.
+ * To generate such a certificate, use the `new_acme_enrollment` method on a partially initialized CoreCrypto instance. This will generate a temporary key material for the enrollment session with the ACME server. Note that only Ed25519 signature scheme is supported at the moment.
+ * Only the "enrollment" flow is defined for the moment. Later on, "refresh" and "revocation" flows will be added.
+ * This library is heavily opinionated and only suited for **Wire** custom flow, with [our fork of the acme server](https://github.com/wireapp/smallstep-certificates). Any attempt to use it as a generic purpose acme client library will fail terribly.
+ * To make sure this works as expected, this library has been tested against the actual [acme-server](https://github.com/wireapp/smallstep-certificates) thanks to [testcontainers](https://www.testcontainers.org/). Only the OIDC provider has been mocked for the moment due to the fact that the target provider [Dex](https://github.com/dexidp/dex) does not yet support Ed25519 signatures.
+### 0.6.0 pre-release changes tl;dr, for information
-### Bug Fixes
+#### Changes
-- Incorrect null handing in Typescript wrapper for 'commitPendingProposals'
-- External_senders public key was not TLS deserialized causing rejection of external remove proposals
+* Added support for externally-generated MLS clients
+ * This allows you to generate a standalone Credential/KeyPair, submit it to your MLS Authentication Service, and then update this credential with a newly-attributed Client ID.
+* Added APIs to support Proteus Last Resort Prekeys
+* Added support for Proteus error codes
+ * WASM:
+ * all errors are now instances of `CoreCryptoError` which extends the standard JavaScript `Error` but with additional properties:
+ * `rustStackTrace` contains the original Rust error string.
+ * `proteusErrorCode` contains the error code for Proteus calls. If it's 0, no error, otherwise it contains the code
+ * WASM/TS now has access to the `CoreCrypto.proteusLastErrorCode()` method which allows to retrieve the last-occured proteus error and thus brings it to parity with other FFIs
+ * On other platforms, the FFI has gained a `proteus_last_error_code` method.
+* Fixed a bug where the keystore would not execute its IndexedDB upgrade handler on WASM, leading to older stores and/or new tables not being structurally consistent
+* Added missing Proteus APIs to bindings and FFI:
+ * `proteus_new_prekey_auto`: generates a new PreKeyBundle with an automatically incremented ID
+ * To do this, CoreCrypto finds the first "free" ID within the `0..u16::MAX - 1` range and creates a PreKey using this ID.
+* Added Proteus compatibility layer support
+* Added API to export secret key derived from the group and client ids from the members
+* Change `DecryptedMessage` signature
+ * The `decrypt` API now returns if the decrypted message changed the epoch through the `hasEpochChanged` field
+* Members can now rejoin group by external commits
+ * Validate received external commits
+ * Added `clear_pending_group_from_external_commit`
+ * External commit returns a bundle containing the PGS
-### Documentation
-- Better explanation of what DecryptedMessage#proposals contains
+#### Breaking changes
-### Miscellaneous Tasks
-- Release v0.5.1
-- Added E2E interop testing tool
+* **[BREAKING CHANGE]** Changed callbacks to be async
+ * This allows consumers to perform async I/O within the callbacks
+ * **Note** this doesn't affect the Kotlin/Swift bindings as UniFFI does not support async yet.
+* **BREAKING** Renamed callback `client_id_belongs_to_one_of` to `client_is_existing_group_user`
+* **BREAKING** WASM: Omitted in last build; `CoreCrypto.deferredInit` now takes an object with the parameters much like `init()` for consistency reasons.
+* **BREAKING** No one was probably using it, but the C-FFI has been removed
-### Bug Fixes
+There has been an extensive pre-release period (with many -pre and -rc releases), the original changelog for those has been collapsed below:
-- NPM publish workflow missing npm ci + wrong method names in TS bindings
-- NPM publish workflow missing npm i
-- Rollback openmls & chrono in order to release 0.5.0
-- Pin openmls without vulnerable chrono
-- Wee_alloc memory leak + NPM publish issue
-- Unreachable pub struct breaks docgen
-- Fixed iOS SQLCipher salt handling within keychain
-- [**breaking**] Changed misleading callback API and docs
-- [**breaking**] Added missing TS API to set CoreCrypto callbacks
-- Force software implementation for sha2 on target architectures not supporting hardware implementation (i686 & armv7 in our case)
+
+ 0.6.0 pre-releases changelog
-### Documentation
+## [0.6.0-rc.8] - 2023-02-09
-- Add forgotten 0.4.0 changelog
+
+ git-conventional changelog
### Features
-- [**breaking**] 'commit_pending_proposals' now returns an optional CommitBundle when there is no pending proposals to commit
+- Added support for Proteus Last Resort PreKeys (boooo!)
+- [**breaking**] Async callbacks
+- Externally-generated clients
### Miscellaneous Tasks
-- Release v0.5.0 Redux
-- Update UniFFI to 0.20
-- Release v0.5.0
-- Update node version from 12 to 16 LTS
-- Update dependencies
-- Remove es2020-specific operators and target es2020 only
-- Updated changelog
+- Release v0.6.0-rc.8
+- Updated webdriver version to chrome 110
+
-### Bug Fixes
+* Added support for externally-generated MLS clients
+ * This allows you to generate a standalone Credential/KeyPair, submit it to your MLS Authentication Service, and then update this credential with a newly-attributed Client ID.
+* **[BREAKING CHANGE]** Changed callbacks to be async
+ * This allows consumers to perform async I/O within the callbacks
+ * **Note** this doesn't affect the Kotlin/Swift bindings as UniFFI does not support async yet.
+* Added APIs to support Proteus Last Resort Prekeys
-- Uniffi breaking changes in patch release and ffi error due to unused `TlsMemberAddedMessages`
+## [0.6.0-rc.7] - 2023-02-06
+
+ git-conventional changelog
### Bug Fixes
-- Ensure durable methods are well tested and actually durable
+- Fixed E2E interop test for breaking api changes
+- New e2eidentityerror enum member wasn't exposed over ffi
+- TS/WASM build issues & test
-### Features
+### Miscellaneous Tasks
-- Commits and group creation return a TLS serialized CommitBundle. The latter also contains a PublicGroupStateBundle to prepare future evolutions
-- [**breaking**] 'decrypt_message' returns the sender client id
-- Use 128 bytes of padding when encrypting messages instead of 16 previously
-- Add function to return current epoch of a group [CL-80] ([#96](https://github.com/wireapp/core-crypto/issues/96))
-- Adding a wrapper for the swift API and initial docs [CL-62] ([#89](https://github.com/wireapp/core-crypto/issues/89))
-- Add '#[durable]' macro to verify the method is tolerant to crashes and persists the MLS group in keystore
-- Expose 'clear_pending_commit' method
-- Allow rollbacking a proposal
-- [**breaking**] Expose 'clear_pending_commit' method
-- [**breaking**] Allow rollbacking a proposal
+- Release v0.6.0-rc.7
+
+
+
+* Fixed WASM build when imported from the outside
+ * Made sure we're not leaking internal/private interfaces anymore and causing issues
+ * Also added a test to our JS E2E suite to make sure importing the package with TS is successful and we do not encounter regressions like these anymore
+* **BREAKING** WASM: Omitted in last build; `CoreCrypto.deferredInit` now takes an object with the parameters much like `init()` for consistency reasons.
+
+
+## [0.6.0-rc.6] - 2023-02-01
+
+
+ git-conventional changelog
-### Miscellaneous Tasks
+### Bug Fixes
-- Migrate benchmarks to async and write some for core crypto operations
-- Fixed WASM E2E tests
+- Proteus error system not working (at all)
+- Force cargo to use git cli to avoid intermittent CI failures
-### Testing
+### Miscellaneous Tasks
-- Add reminder for x509 certificate tests
+- Release v0.6.0-rc.6
+- Updated rstest_reuse to 0.5
+- Updated spinoff to 0.7
+- Added codecov settings
+- Update node to LTS 18 & enable JS e2e testing
+- Make npm build run wasm-opt in Os
+- Update JVM publish workflow to build on native platforms ([#229](https://github.com/wireapp/core-crypto/issues/229))
+
-### Miscellaneous Tasks
+**IMPORTANT: The previous release (0.6.0-rc.5) is non-functional in general. The proteus error reporting does NOT work**
-- Release v0.3.1
+There's a post mortem available here:
+* Fixed support for Proteus error codes
+ * WASM:
+ * all errors are now instances of `CoreCryptoError` which extends the standard JavaScript `Error` but with additional properties:
+ * `rustStackTrace` contains the original Rust error string.
+ * `proteusErrorCode` contains the error code for Proteus calls. If it's 0, no error, otherwise it contains the code
+ * WASM/TS now has access to the `CoreCrypto.proteusLastErrorCode()` method which allows to retrieve the last-occured proteus error and thus brings it to parity with other FFIs
+ * On other platforms, the API is unchanged, but now works.
-### Bug Fixes
-- Clippy fix impl eq
-- Libgcc swizzling for android was removed
-- Cleaned up FFI names for clearer intent
-- Caught up WASM api with the internal API changes
-- Doctests were failing because included markdown snippets were parsed and compiled
-- Defer validation that a callback has to be set for validating external add proposal after incoming proposal identified as such
-- Updated RustCrypto dependencies to match hpke-rs requirements
-- Group was not persisted after decrypting an application message
-- UniFFI wrong type defs
-- Aes_gcm compilation issue
-- WASM persistence & CoreCrypto Async edition
-- 'client_keypackages' does not require mutable access on 'mls_client'
-- Add_member/remove_member IoError
-- Incorrect number of keypackages returned
-- Added support for MLS Group persistence [CL-5]
+## [0.6.0-rc.5] - 2023-01-25
-### Documentation
+
+ git-conventional changelog
-- Added bindings docs where appropriate + generated gh-pages
-- Fix Client struct documentation
-- Improving docs of Core-Crypto - [CL-50] ([#60](https://github.com/wireapp/core-crypto/issues/60))
+### Bug Fixes
+
+- [**breaking**] Added conversation id to clientIsExistingGroupUser callback
+- Increment IndexedDB store version when crate version changes
### Features
-- Review external add proposal validation and remove 'InvalidProposalType' error
-- Remove required KeyPackage when creating an external add proposal
-- Remove commits auto-merge behaviour
-- Expose GroupInfo after commit operation
-- Use draft-16 implementation of external sender. Expose a correct type through ffi for remove key
-- Add API to wipe specific group from core crypto [CL-55] ([#81](https://github.com/wireapp/core-crypto/issues/81))
-- Adding validation to external proposal [CL-51] ([#71](https://github.com/wireapp/core-crypto/issues/71))
-- Decrypting a commit now also return a delay when there are pending proposals
-- Decrypting a commit now also return a delay when there are pending proposals
-- 'commit_delay' now uses openmls provided leaf index instead of computing it ourselves. It is also now infallible.
-- Ensure consistent state
-- [**breaking**] Add commit delay when a message with prending proposals is processed [CL-52] ([#67](https://github.com/wireapp/core-crypto/issues/67))
-- Added KeyPackage Pruning
-- Added support for external entropy seed
-- Join by external commit support - CL-47 ([#57](https://github.com/wireapp/core-crypto/issues/57))
-- Added Entity testing to keystore
-- External remove proposal support
-- Supports and validates x509 certificates as credential
-- Expose function to self update the key package to FFI and Wasm #CL-17 ([#48](https://github.com/wireapp/core-crypto/issues/48))
-- Added support for wasm32-unknown-unknown target
-- Support external add proposal
-- Added method to leave a conversation
-- Enforce (simple) invariants on MlsCentralConfiguration
-- Expose add/update/remove proposal
+- Added support for Proteus error codes
### Miscellaneous Tasks
-- Bump WASM bundle version to 0.3.0
-- Added Changelog generator
-- Fix nits on CHANGELOG-HUMAN.md
-- Add changelog generator configuration + human changelog
-- Disable crate publishing + UniFFI catchup
-- Rename 'group_info' into 'public_group_state' to remain consistent with draft-12
-- Remove 'SelfKeypackageNotFound' error which is not used
-- Fix some clippy lints
-- Remove 'group()' test helper and inlined it
-- Fix cli compilation and update it a bit
-- Removed CryptoError variant `CentralConfigurationError`
-- Avoid cloning credential
-- Use shorthand for not using generics in conversation
-- Factorize group accessors in conversation.rs
-- Fix some clippy warnings
-- Remove .idea in sample anroid app
-- Remove unnecessary path prefixes imports
-- Remove useless mutable borrow in Client methods
-- Add Intellij files to gitignore
-- Bump jvm and android version
-- Add jvm linux support
-
-### Performance
-
-- Avoid cloning conversation extra members when creating the former
+- Cut release 0.6.0-rc.5
+- Moved codecov from tarpaulin to llvm-cov
+- Updated RustCrypto primitives & git dep in xtask
-### Refactor
+
-- Moved run_with_* test utils in a test_utils mod
-- Use shorthand for generics in Central
-- Factorize keystore update when group state change from a conversation pov
+* **BREAKING**: Changed the signature of the `client_is_existing_group_user` callback to add the group id as the first argument
+ * Before: `client_is_existing_group_user(client_id: ClientId, existing_clients: Vec) -> bool`
+ * After: `client_is_existing_group_user(conversation_id: ConversationId, client_id: ClientId, existing_clients: Vec) -> bool`
+* Added support for Proteus error codes
+ * On WASM, the JS Error contains a `proteusError` method that returns the error code as an integer. If there's no error it returns 0.
+ * On other platforms, the FFI has gained a `proteus_last_error_code` method.
+* Fixed a bug where the keystore would not execute its IndexedDB upgrade handler on WASM, leading to older stores and/or new tables not being structurally consistent
+* Updated RustCrypto dependencies
+* Tooling: moved code coverage CI from Tarpaulin to LLVM-Cov
+ * This lowered the execution time of our codecov CI from ~25-30 minutes down to ~15-20 minutes
+ * This leads to more accurate code coverage as well - along with some false negatives such as `#[derive]` statements
-### Testing
-- Add tests for 'commit_pending_proposals'
-- Verify that commit operation are returning a valid welcome if any
-- Use Index trait to access conversation from Central instead of duplicate accessor
-- Use central instead of conversation
-- Fix minor clippy lints in tests
-- Apply clippy suggestions on test sources
-- Reorganize tests in conversation.rs
-- Nest conversation tests in dedicated modules
-- Verify adding a keypackage to a ConversationMember
+## [0.6.0-rc.4] - 2023-01-20
+
+ git-conventional changelog
### Bug Fixes
-- Set correct path to toolchain depending on platform & copy bindings
-- Fix broken tests
-- Tests fix
-- Fixed iOS WAL behavior for SQLite-backed stores
-- Fix Keystore trait having update method removed
-- Clippy + fmt pass on core-crypto
-- Fmt + clippy pass
-- Migrations were incorrectly defined
+- Aarch64-apple-ios-sim target not compiling ([#213](https://github.com/wireapp/core-crypto/issues/213))
+- Cryptobox import now throws errors on missing/incorrect store
### Features
-- Add android project
-- Add tasks for building and copying jvm resources
-- Add jvm project
-- WIP hand-written ts bindings
-- Generate Swift & Kotlin bindings 🎉
-- Updated deps
-- Added salt in keychain management instead of flat AES-encrypted file
-- Added WIP DS mockup based on QUIC
-- Added ability to create conversations (!!!)
-- Added api support for in-memory keystore
-- Added in-memory faculties for keystore
-- Added benches for the MLS key management
-- Added benches & fixed performance issues
-- Added integration tests + fixes
-- Implemented LRU cache for keystore
-- Added support for Proteus PreKeys
-- Progress + fix store compilation to WASM
+- Expose end to end identity web API
+- Add end to end identity bindings
### Miscellaneous Tasks
-- Configure wire maven repository
-- Clean up gradle files
+- 0.6.0-rc.4 release
+- Updated base64, lru and spinoff deps
+- Added WebDriver-based WASM test runner
+- Xtask improvements
+- Fix 1.66 clippy warnings
+- Update base64 to 0.20
+- Fixed wrong documentation link in TS bindings docs
+- Update UniFFI to 0.22
+- Kotlin FFI docs + makefile fixes for other platforms
@@ -801,47 +670,6 @@ There's a post mortem available here:
git-conventional changelog
-### Bug Fixes
-
-- 'join_by_external_commit' returns a non TLS serialized conversation id
-
-### Features
-
-- [**breaking**] Expose a 'PublicGroupStateBundle' struct used in 'CommitBundle' variants
-- [**breaking**] Remove all the final_* methods returning a TLS encoded CommitBundle
-- Returning if decrypted message changed the epoch - CL-92 ([#152](https://github.com/wireapp/core-crypto/issues/152))
-- Exporting secret key derived from the group and client ids from the members - CL-97 - CL-98 ([#142](https://github.com/wireapp/core-crypto/issues/142))
-- Added API to generate Proteus prekeys
-- Fixed Cryptobox import for WASM
-- Added support for migrating Cryptobox data
-- Added FFI for CoreCrypto-Proteus
-- Added support for Proteus
-- Validate received external commits making sure the sender's user already belongs to the MLS group and has the right role
-- [**breaking**] Rename callback~~`client_id_belongs_to_one_of`~~ into `client_is_existing_group_user`
-- [**breaking**] External commit returns a bundle containing the PGS
-- [**breaking**] Add `clear_pending_group_from_external_commit` to cleanly abort an external commit. Also renamed `group_state` argument into `public_group_state` wherever found which can be considered a breaking change in some languages
-- [**breaking**] Rename `MlsConversationInitMessage#group` into `MlsConversationInitMessage#conversation_id` because it was misleading about the actual returned value
-
-### Miscellaneous Tasks
-
-- Apply suggestions from code review
-- Updated bundled FFI files
-- Added Proteus testing infra
-- Added missing docs
-- Nits, fmt & cargo-deny tweak
-- Add m1 support for the jvm bindings ([#139](https://github.com/wireapp/core-crypto/issues/139))
-- Remove unneeded `map_err(CryptoError::from)`
-- Remove useless code
-
-### Testing
-
-- Fix external commit tests allowing member to rejoin a group by external commit
-- Add a default impl for 'TestCase', very useful when one has to debug on IntelliJ
-- Parameterize ciphers
-- Ensure external senders can be inferred when joining by external commit or welcome
-- Fix rcgen failing on WASM due to some unsupported elliptic curve methods invoked at compile time
-- Ensure external commit are retriable
-
* Add Apple M1 support for the JVM bindings
@@ -1276,6 +1104,42 @@ Note: all the platforms marked with (⚠️) above will get a round of polish fo
git-conventional changelog
+### Bug Fixes
+
+- Set correct path to toolchain depending on platform & copy bindings
+- Fix broken tests
+- Tests fix
+- Fixed iOS WAL behavior for SQLite-backed stores
+- Fix Keystore trait having update method removed
+- Clippy + fmt pass on core-crypto
+- Fmt + clippy pass
+- Migrations were incorrectly defined
+
+### Features
+
+- Add android project
+- Add tasks for building and copying jvm resources
+- Add jvm project
+- WIP hand-written ts bindings
+- Generate Swift & Kotlin bindings 🎉
+- Updated deps
+- Added salt in keychain management instead of flat AES-encrypted file
+- Added WIP DS mockup based on QUIC
+- Added ability to create conversations (!!!)
+- Added api support for in-memory keystore
+- Added in-memory faculties for keystore
+- Added benches for the MLS key management
+- Added benches & fixed performance issues
+- Added integration tests + fixes
+- Implemented LRU cache for keystore
+- Added support for Proteus PreKeys
+- Progress + fix store compilation to WASM
+
+### Miscellaneous Tasks
+
+- Configure wire maven repository
+- Clean up gradle files
+
Initial stable release with a reduced featureset
diff --git a/CHANGELOG.tpl b/CHANGELOG.tpl
index b5ed75d6b3..8cde1f37b7 100644
--- a/CHANGELOG.tpl
+++ b/CHANGELOG.tpl
@@ -7,11 +7,25 @@ Platform support legends:
* Note: the papercuts will majorly be with the build process. Things might be very rough to integrate as no polish at all has been given yet.
* ❌ = tier 3 support. It doesn't work just yet, but we plan to make it work.
+## [0.6.1] - 2023-02-16
+
+
+ git-conventional changelog
+{{git-cliff tag="v0.6.1" unreleased=true }}
+
+
+### 0.6.1 Release changes
+
+* Fixed a bug where the last resort prekey could be overwritten.
+* Fixed JVM publishing creating broken packages.
+* Change WASM callback to return false by default if no promise is returned.
+* Remove redundant save when persisting proteus sessions.
+
## [0.6.0] - 2023-02-13
git-conventional changelog
-{{git-cliff tag="v0.6.0" unreleased=true }}
+{{git-cliff tag="v0.6.0"}}
Platform support status:
diff --git a/crypto-attributes/Cargo.toml b/crypto-attributes/Cargo.toml
index de5b005533..677cebd433 100644
--- a/crypto-attributes/Cargo.toml
+++ b/crypto-attributes/Cargo.toml
@@ -2,7 +2,7 @@
name = "core-crypto-attributes"
description = "Macros for core-crypto"
repository = "https://github.com/wireapp/core-crypto"
-version = "0.6.0"
+version = "0.6.1"
edition = "2021"
license = "GPL-3.0-only"
diff --git a/crypto-ffi/Cargo.toml b/crypto-ffi/Cargo.toml
index dcd3257d78..96d61b7785 100644
--- a/crypto-ffi/Cargo.toml
+++ b/crypto-ffi/Cargo.toml
@@ -2,7 +2,7 @@
name = "core-crypto-ffi"
description = "Platform-specific bindings (Android, iOS, WASM) for CoreCrypto"
repository = "https://github.com/wireapp/core-crypto"
-version = "0.6.0"
+version = "0.6.1"
edition = "2021"
license = "GPL-3.0-only"
publish = false
@@ -17,7 +17,7 @@ proteus = ["core-crypto/proteus", "core-crypto/cryptobox-migrate"]
mobile = ["uniffi", "uniffi_macros", "uniffi_build", "uniffi_bindgen"]
[dependencies]
-core-crypto = { version = "^0.6.0", path = "../crypto" }
+core-crypto = { version = "^0.6.1", path = "../crypto" }
thiserror = "1.0"
cfg-if = "1.0"
futures-util = "0.3"
diff --git a/crypto-ffi/bindings/js/test/CoreCrypto.test.js b/crypto-ffi/bindings/js/test/CoreCrypto.test.js
index 5e1e4f0b59..4fe9626791 100644
--- a/crypto-ffi/bindings/js/test/CoreCrypto.test.js
+++ b/crypto-ffi/bindings/js/test/CoreCrypto.test.js
@@ -68,7 +68,7 @@ test("init", async () => {
return CoreCrypto.version();
});
- expect(version).toMatch("0.6.0");
+ expect(version).toMatch("0.6.1");
await page.close();
await ctx.close();
diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml
index 4ed8f6db5c..4542749216 100644
--- a/crypto/Cargo.toml
+++ b/crypto/Cargo.toml
@@ -2,7 +2,7 @@
name = "core-crypto"
description = "Abstraction over OpenMLS with persistent keystore"
repository = "https://github.com/wireapp/core-crypto"
-version = "0.6.0"
+version = "0.6.1"
edition = "2021"
license = "GPL-3.0-only"
publish = false
@@ -60,11 +60,11 @@ rexie = { version = "0.4", optional = true }
base64 = { version = "0.21", optional = true }
[dependencies.core-crypto-keystore]
-version = "^0.6.0"
+version = "^0.6.1"
path = "../keystore"
[dependencies.mls-crypto-provider]
-version = "^0.6.0"
+version = "^0.6.1"
path = "../mls-provider"
[dev-dependencies]
@@ -93,7 +93,7 @@ version = "0.3"
features = ["async_futures", "html_reports"]
[dev-dependencies.core-crypto-attributes]
-version = "^0.6.0"
+version = "^0.6.1"
path = "../crypto-attributes"
[package.metadata.wasm-pack.profile.release]
diff --git a/interop/Cargo.toml b/interop/Cargo.toml
index ce9f80419a..0339da0803 100644
--- a/interop/Cargo.toml
+++ b/interop/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "interop"
-version = "0.6.0"
+version = "0.6.1"
edition = "2021"
license = "GPL-3.0-only"
diff --git a/keystore/Cargo.toml b/keystore/Cargo.toml
index 2ab1e61c22..59a954fe3f 100644
--- a/keystore/Cargo.toml
+++ b/keystore/Cargo.toml
@@ -2,7 +2,7 @@
name = "core-crypto-keystore"
description = "Encrypted keystore with support for OpenMLS and Proteus"
repository = "https://github.com/wireapp/core-crypto"
-version = "0.6.0"
+version = "0.6.1"
edition = "2021"
license = "GPL-3.0-only"
publish = false
diff --git a/kotlin/android/build.gradle.kts b/kotlin/android/build.gradle.kts
index 85865008ee..b071953fe8 100644
--- a/kotlin/android/build.gradle.kts
+++ b/kotlin/android/build.gradle.kts
@@ -56,7 +56,7 @@ afterEvaluate {
create("maven") {
groupId = "com.wire"
artifactId = "core-crypto-android"
- version = "0.6.0"
+ version = "0.6.1"
from(components["release"])
pom {
name.set("core-crypto-android")
diff --git a/kotlin/jvm/build.gradle.kts b/kotlin/jvm/build.gradle.kts
index 7b01e19cc4..28eeff0fc0 100644
--- a/kotlin/jvm/build.gradle.kts
+++ b/kotlin/jvm/build.gradle.kts
@@ -109,7 +109,7 @@ afterEvaluate {
create("maven") {
groupId = "com.wire"
artifactId = "core-crypto-jvm"
- version = "0.6.0"
+ version = "0.6.1"
from(components["java"])
diff --git a/mls-provider/Cargo.toml b/mls-provider/Cargo.toml
index c70978a4d7..73105c0e42 100644
--- a/mls-provider/Cargo.toml
+++ b/mls-provider/Cargo.toml
@@ -2,7 +2,7 @@
name = "mls-crypto-provider"
description = "MLS Crypto Provider wrapping core-crypto-keystore"
repository = "https://github.com/wireapp/core-crypto"
-version = "0.6.0"
+version = "0.6.1"
edition = "2018"
license = "GPL-3.0-only"
publish = false
@@ -38,7 +38,7 @@ zeroize = "1.5"
thiserror = "1.0"
[dependencies.core-crypto-keystore]
-version = "^0.6.0"
+version = "^0.6.1"
path = "../keystore"
[dev-dependencies]
diff --git a/package.json b/package.json
index 278e3ac503..ad42a83764 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@wireapp/core-crypto",
- "version": "0.6.0",
+ "version": "0.6.1",
"description": "CoreCrypto bindings for the Web",
"type": "module",
"module": "platforms/web/corecrypto.js",