diff --git a/CHANGELOG.md b/CHANGELOG.md index a918566e55..3e4268f22f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ 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.3] - 2023-02-17 + +
+ git-conventional changelog + +### Miscellaneous Tasks + +- Build linux artifacts on Ubuntu LTS for better compatibility + +
+ +* Improve compatbillity with older linux versions when running core-crypto-jvm by building on Ubuntu LTS (22.04). ## [0.6.2] - 2023-02-16 @@ -19,6 +31,7 @@ Platform support legends: ### Miscellaneous Tasks +- Release v0.6.2 - Fix native libraries not loading by moving them to the package root ([#255](https://github.com/wireapp/core-crypto/issues/255)) @@ -288,239 +301,6 @@ Platform support legends: - Fix rcgen failing on WASM due to some unsupported elliptic curve methods invoked at compile time - Ensure external commit are retriable - -### 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 - -- Add installation instructions for e2e runner on macos - -### Miscellaneous Tasks - -- Release v0.5.2 - - -### Bug Fixes - -- Incorrect null handing in Typescript wrapper for 'commitPendingProposals' -- External_senders public key was not TLS deserialized causing rejection of external remove proposals - -### Documentation - -- Better explanation of what DecryptedMessage#proposals contains - -### Miscellaneous Tasks - -- Release v0.5.1 -- Added E2E interop testing tool - - -### Bug Fixes - -- 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) - -### Documentation - -- Add forgotten 0.4.0 changelog - -### Features - -- [**breaking**] 'commit_pending_proposals' now returns an optional CommitBundle when there is no pending proposals to commit - -### 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 - - -### Bug Fixes - -- Uniffi breaking changes in patch release and ffi error due to unused `TlsMemberAddedMessages` - - -### Bug Fixes - -- Ensure durable methods are well tested and actually durable - -### Features - -- 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 - -### Miscellaneous Tasks - -- Migrate benchmarks to async and write some for core crypto operations -- Fixed WASM E2E tests - -### Testing - -- Add reminder for x509 certificate tests - - -### Miscellaneous Tasks - -- Release v0.3.1 - - -### 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] - -### Documentation - -- 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)) - -### 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 - -### 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 - -### 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 - -### 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 - - -### 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 - Platform support status: @@ -714,6 +494,28 @@ There's a post mortem available here: git-conventional changelog +### Bug Fixes + +- 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 + +- Expose end to end identity web API +- Add end to end identity bindings + +### Miscellaneous Tasks + +- 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 + * First bytes of end to end identity exposed. Thanks to the ACME protocol, it allows requesting a x509 certificate from an authority and then use it to create a MLS Credential. @@ -912,47 +714,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 @@ -1387,6 +1148,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 7a23146ec9..349aaea113 100644 --- a/CHANGELOG.tpl +++ b/CHANGELOG.tpl @@ -7,12 +7,20 @@ 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.3] - 2023-02-17 + +
+ git-conventional changelog +{{git-cliff tag="v0.6.3" unreleased=true }} +
+ +* Improve compatbillity with older linux versions when running core-crypto-jvm by building on Ubuntu LTS (22.04). ## [0.6.2] - 2023-02-16
git-conventional changelog -{{git-cliff tag="v0.6.2" unreleased=true }} +{{git-cliff tag="v0.6.2"}}
* Fixed a bug in the TypeScript bindings where the `DecryptedMessage` bundle could have `commitDelay` set to `undefined` when it should be 0 diff --git a/crypto-attributes/Cargo.toml b/crypto-attributes/Cargo.toml index 27b6f4dcee..d4b4fb2cac 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.2" +version = "0.6.3" edition = "2021" license = "GPL-3.0-only" diff --git a/crypto-ffi/Cargo.toml b/crypto-ffi/Cargo.toml index 7256ff44d9..a4f6707270 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.2" +version = "0.6.3" 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.2", path = "../crypto" } +core-crypto = { version = "^0.6.3", path = "../crypto" } thiserror = "1.0" cfg-if = "1.0" futures-util = "0.3" diff --git a/crypto/Cargo.toml b/crypto/Cargo.toml index cf45dd03aa..18f024ea51 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.2" +version = "0.6.3" 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.2" +version = "^0.6.3" path = "../keystore" [dependencies.mls-crypto-provider] -version = "^0.6.2" +version = "^0.6.3" 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.2" +version = "^0.6.3" path = "../crypto-attributes" [package.metadata.wasm-pack.profile.release] diff --git a/interop/Cargo.toml b/interop/Cargo.toml index d0eb282d9c..a63b6fe55f 100644 --- a/interop/Cargo.toml +++ b/interop/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "interop" -version = "0.6.2" +version = "0.6.3" edition = "2021" license = "GPL-3.0-only" diff --git a/keystore/Cargo.toml b/keystore/Cargo.toml index 0ddd70c62a..69ca9988b5 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.2" +version = "0.6.3" edition = "2021" license = "GPL-3.0-only" publish = false diff --git a/kotlin/android/build.gradle.kts b/kotlin/android/build.gradle.kts index 2f58231107..7a0988781e 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.2" + version = "0.6.3" from(components["release"]) pom { name.set("core-crypto-android") diff --git a/kotlin/jvm/build.gradle.kts b/kotlin/jvm/build.gradle.kts index 0b2e94bbe0..f0b3735a07 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.2" + version = "0.6.3" from(components["java"]) diff --git a/mls-provider/Cargo.toml b/mls-provider/Cargo.toml index c447e3f868..b55c6b0c21 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.2" +version = "0.6.3" 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.2" +version = "^0.6.3" path = "../keystore" [dev-dependencies] diff --git a/package.json b/package.json index c0215667f4..9f1ca1258a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@wireapp/core-crypto", - "version": "0.6.2", + "version": "0.6.3", "description": "CoreCrypto bindings for the Web", "type": "module", "module": "platforms/web/corecrypto.js",