diff --git a/mls-rs-codec-derive/Cargo.toml b/mls-rs-codec-derive/Cargo.toml index 2f786bdf..8f9ff814 100644 --- a/mls-rs-codec-derive/Cargo.toml +++ b/mls-rs-codec-derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-codec-derive" -version = "0.1.0" +version = "0.1.1" edition = "2021" description = "Derive macro crate for mls-rs-codec" homepage = "https://github.com/awslabs/mls-rs" diff --git a/mls-rs-codec/Cargo.toml b/mls-rs-codec/Cargo.toml index c4f5e910..85266b00 100644 --- a/mls-rs-codec/Cargo.toml +++ b/mls-rs-codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-codec" -version = "0.5.1" +version = "0.5.2" edition = "2021" description = "TLS codec and MLS specific encoding used by mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -14,7 +14,7 @@ preallocate = [] std = ["dep:thiserror"] [dependencies] -mls-rs-codec-derive = { version = "0.1.0", path = "../mls-rs-codec-derive" } +mls-rs-codec-derive = { version = "0.1.1", path = "../mls-rs-codec-derive" } thiserror = { version = "1.0.40", optional = true } [dev-dependencies] diff --git a/mls-rs-core/Cargo.toml b/mls-rs-core/Cargo.toml index 282adfc1..98521a93 100644 --- a/mls-rs-core/Cargo.toml +++ b/mls-rs-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-core" -version = "0.17.1" +version = "0.18.0" edition = "2021" description = "Core components and traits for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -22,7 +22,7 @@ test_suite = ["serde", "dep:serde_json", "dep:itertools"] serde = ["dep:serde", "zeroize/serde", "hex/serde", "dep:serde_bytes"] [dependencies] -mls-rs-codec = { version = "0.5.0", path = "../mls-rs-codec", default-features = false} +mls-rs-codec = { version = "0.5.2", path = "../mls-rs-codec", default-features = false} zeroize = { version = "1", default-features = false, features = ["alloc", "zeroize_derive"] } arbitrary = { version = "1", features = ["derive"], optional = true } thiserror = { version = "1.0.40", optional = true } diff --git a/mls-rs-crypto-awslc/Cargo.toml b/mls-rs-crypto-awslc/Cargo.toml index 4dc7f539..31759e9a 100644 --- a/mls-rs-crypto-awslc/Cargo.toml +++ b/mls-rs-crypto-awslc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-crypto-awslc" -version = "0.10.0" +version = "0.11.0" edition = "2021" description = "AWS-LC based CryptoProvider for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -9,20 +9,20 @@ keywords = ["mls", "mls-rs", "aws-lc"] license = "Apache-2.0 OR MIT" [dependencies] -aws-lc-rs = "1.6.1" +aws-lc-rs = "1.6.2" aws-lc-sys = { version = "0.13.0" } -mls-rs-core = { path = "../mls-rs-core", version = "0.17.1" } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.8.0" } -mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", version = "0.9.0" } -mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", version = "0.10.0" } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0" } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.9.0" } +mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", version = "0.10.0" } +mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", version = "0.11.0" } thiserror = "1.0.40" zeroize = { version = "1", features = ["zeroize_derive"] } maybe-async = "0.2.10" [dev-dependencies] assert_matches = "1.5.0" -mls-rs-core = { path = "../mls-rs-core", version = "0.17.1", features = ["test_suite"] } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.8.0", features = ["test_utils"] } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0", features = ["test_suite"] } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.9.0", features = ["test_utils"] } futures-test = "0.3.25" [target.'cfg(mls_build_async)'.dependencies] diff --git a/mls-rs-crypto-hpke/Cargo.toml b/mls-rs-crypto-hpke/Cargo.toml index e6277042..7da364f8 100644 --- a/mls-rs-crypto-hpke/Cargo.toml +++ b/mls-rs-crypto-hpke/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-crypto-hpke" -version = "0.8.0" +version = "0.9.0" edition = "2021" description = "HPKE implementation based on mls-rs-crypto-traits used by mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -15,8 +15,8 @@ std = ["mls-rs-core/std", "mls-rs-crypto-traits/std", "dep:thiserror", "zeroize/ test_utils = ["mls-rs-core/test_suite"] [dependencies] -mls-rs-core = { path = "../mls-rs-core", default-features = false, version = "0.17.0" } -mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", default-features = false, version = "0.9.0" } +mls-rs-core = { path = "../mls-rs-core", default-features = false, version = "0.18.0" } +mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", default-features = false, version = "0.10.0" } thiserror = { version = "1.0.40", optional = true } zeroize = { version = "1", default-features = false, features = ["alloc", "zeroize_derive"] } cfg-if = "^1" @@ -28,7 +28,7 @@ serde_json = { version = "^1.0" } assert_matches = "1.5.0" mockall = "0.12" hex = { version = "^0.4.3", features = ["serde"] } -mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", features = ["mock"], version = "0.9.0" } +mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", features = ["mock"], version = "0.10.0" } [target.'cfg(target_arch = "wasm32")'.dev-dependencies] wasm-bindgen-test = { version = "0.3.26", default-features = false } diff --git a/mls-rs-crypto-openssl/Cargo.toml b/mls-rs-crypto-openssl/Cargo.toml index f301a9b3..05fdd102 100644 --- a/mls-rs-crypto-openssl/Cargo.toml +++ b/mls-rs-crypto-openssl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-crypto-openssl" -version = "0.8.0" +version = "0.9.0" edition = "2021" description = "OpenSSL based CryptoProvider for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -14,10 +14,10 @@ default = ["x509"] [dependencies] openssl = { version = "0.10.40" } -mls-rs-core = { path = "../mls-rs-core", version = "0.17.0" } -mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", optional = true, version = "0.10.0" } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.8.0" } -mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", version = "0.9.0" } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0" } +mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", optional = true, version = "0.11.0" } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.9.0" } +mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", version = "0.10.0" } thiserror = "1.0.40" zeroize = { version = "1", features = ["zeroize_derive"] } maybe-async = "0.2.10" @@ -27,8 +27,8 @@ hex = { version = "^0.4.3", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "^1.0" } assert_matches = "1.5.0" -mls-rs-core = { path = "../mls-rs-core", version = "0.17.0", features = ["test_suite"] } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.8.0", features = ["test_utils"] } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0", features = ["test_suite"] } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", version = "0.9.0", features = ["test_utils"] } [target.'cfg(mls_build_async)'.dependencies] async-trait = "0.1.74" diff --git a/mls-rs-crypto-rustcrypto/Cargo.toml b/mls-rs-crypto-rustcrypto/Cargo.toml index f0081e2b..555ac14c 100644 --- a/mls-rs-crypto-rustcrypto/Cargo.toml +++ b/mls-rs-crypto-rustcrypto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-crypto-rustcrypto" -version = "0.9.0" +version = "0.10.0" edition = "2021" description = "RustCrypto based CryptoProvider for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -29,9 +29,9 @@ std = [ ] [dependencies] -mls-rs-core = { path = "../mls-rs-core", default-features = false, version = "0.17.0" } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", default-features = false, version = "0.8.0" } -mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", default-features = false, version = "0.9.0" } +mls-rs-core = { path = "../mls-rs-core", default-features = false, version = "0.18.0" } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", default-features = false, version = "0.9.0" } +mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", default-features = false, version = "0.10.0" } thiserror = { version = "1.0.40", optional = true } zeroize = { version = "1", default-features = false, features = ["alloc", "zeroize_derive"] } @@ -58,7 +58,7 @@ ed25519-dalek = { version = "2", default-features = false, features = ["alloc", sec1 = { version = "0.7", default-features = false, features = ["alloc"] } # X509 feature -mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", optional = true, version = "0.10.0" } +mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", optional = true, version = "0.11.0" } x509-cert = { version = "0.2", optional = true, features = ["std"] } spki = { version = "0.7", optional = true, features = ["std", "alloc"] } const-oid = { version = "0.9", optional = true, features = ["std"] } @@ -69,8 +69,8 @@ hex = { version = "^0.4.3", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } serde_json = { version = "^1.0" } assert_matches = "1.5.0" -mls-rs-core = { path = "../mls-rs-core", version = "0.17.0", features = ["test_suite"] } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", default-features = false, version = "0.8.0", features = ["test_utils"] } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0", features = ["test_suite"] } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", default-features = false, version = "0.9.0", features = ["test_utils"] } [target.'cfg(mls_build_async)'.dependencies] async-trait = "0.1.74" diff --git a/mls-rs-crypto-traits/Cargo.toml b/mls-rs-crypto-traits/Cargo.toml index f976443b..49d7a1fe 100644 --- a/mls-rs-crypto-traits/Cargo.toml +++ b/mls-rs-crypto-traits/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-crypto-traits" -version = "0.9.0" +version = "0.10.0" edition = "2021" description = "Crypto traits required to create a CryptoProvider for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -14,7 +14,7 @@ std = ["mls-rs-core/std"] default = ["std"] [dependencies] -mls-rs-core = { path = "../mls-rs-core", version = "0.17.0", default-features = false } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0", default-features = false } mockall = { version = "^0.11", optional = true } maybe-async = "0.2.10" diff --git a/mls-rs-crypto-webcrypto/Cargo.toml b/mls-rs-crypto-webcrypto/Cargo.toml index a0a53ffd..a6790088 100644 --- a/mls-rs-crypto-webcrypto/Cargo.toml +++ b/mls-rs-crypto-webcrypto/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-crypto-webcrypto" -version = "0.3.0" +version = "0.4.0" edition = "2021" description = "SubtleCrypto based CryptoProvider for supporting mls-rs in a browser" homepage = "https://github.com/awslabs/mls-rs" @@ -9,9 +9,9 @@ keywords = ["mls", "mls-rs"] license = "Apache-2.0 OR MIT" [dependencies] -mls-rs-core = { path = "../mls-rs-core", default-features = false, features = ["std"], version = "0.17.0" } -mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", default-features = false, features = ["std"], version = "0.8.0" } -mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", default-features = false, features = ["std"], version = "0.9.0" } +mls-rs-core = { path = "../mls-rs-core", default-features = false, features = ["std"], version = "0.18.0" } +mls-rs-crypto-hpke = { path = "../mls-rs-crypto-hpke", default-features = false, features = ["std"], version = "0.9.0" } +mls-rs-crypto-traits = { path = "../mls-rs-crypto-traits", default-features = false, features = ["std"], version = "0.10.0" } thiserror = "1.0.40" zeroize = { version = "1", features = ["zeroize_derive"] } maybe-async = "0.2.10" @@ -26,7 +26,7 @@ web-sys = { version = "0.3.64", features = ["Window", "CryptoKey", "CryptoKeyPai const-oid = { version = "0.9", features = ["db"] } [dev-dependencies] -mls-rs-core = { path = "../mls-rs-core", version = "0.17.0", features = ["test_suite"] } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0", features = ["test_suite"] } wasm-bindgen-test = { version = "0.3.26", default-features = false } futures-test = "0.3.25" serde_json = "^1.0" diff --git a/mls-rs-ffi/Cargo.toml b/mls-rs-ffi/Cargo.toml index 62972ac6..c2529949 100644 --- a/mls-rs-ffi/Cargo.toml +++ b/mls-rs-ffi/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-ffi" -version = "0.5.0" +version = "0.6.0" edition = "2021" description = "Helper crate to generate FFI definitions for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -19,9 +19,9 @@ std = ["mls-rs/std", "safer-ffi-gen/std"] x509 = ["mls-rs-identity-x509"] [dependencies] -mls-rs = { path = "../mls-rs", version = "0.38.0", features = ["ffi"] } -mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl", version = "0.8.0", optional = true } -mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", version = "0.10.0", optional = true } -mls-rs-provider-sqlite = { path = "../mls-rs-provider-sqlite", version = "0.10.0", default-features = false, optional = true } +mls-rs = { path = "../mls-rs", version = "0.39.0", features = ["ffi"] } +mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl", version = "0.9.0", optional = true } +mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", version = "0.11.0", optional = true } +mls-rs-provider-sqlite = { path = "../mls-rs-provider-sqlite", version = "0.11.0", default-features = false, optional = true } safer-ffi = { version = "0.1.3", default-features = false } safer-ffi-gen = { version = "0.9.2", default-features = false } diff --git a/mls-rs-identity-x509/Cargo.toml b/mls-rs-identity-x509/Cargo.toml index 9a0d5f55..f3063490 100644 --- a/mls-rs-identity-x509/Cargo.toml +++ b/mls-rs-identity-x509/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-identity-x509" -version = "0.10.0" +version = "0.11.0" edition = "2021" description = "X509 Identity utilities for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -13,7 +13,7 @@ default = ["std"] std = ["mls-rs-core/std", "dep:thiserror"] [dependencies] -mls-rs-core = { path = "../mls-rs-core", default-features = false, features = ["x509"], version = "0.17.0" } +mls-rs-core = { path = "../mls-rs-core", default-features = false, features = ["x509"], version = "0.18.0" } maybe-async = "0.2.10" thiserror = { version = "1.0.40", optional = true } diff --git a/mls-rs-provider-sqlite/Cargo.toml b/mls-rs-provider-sqlite/Cargo.toml index b81b90e2..103bf757 100644 --- a/mls-rs-provider-sqlite/Cargo.toml +++ b/mls-rs-provider-sqlite/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs-provider-sqlite" -version = "0.10.0" +version = "0.11.0" edition = "2021" description = "SQLite based state storage for mls-rs" homepage = "https://github.com/awslabs/mls-rs" @@ -9,11 +9,11 @@ keywords = ["mls", "mls-rs"] license = "Apache-2.0 OR MIT" [dependencies] -mls-rs-core = { path = "../mls-rs-core", version = "0.17.0" } +mls-rs-core = { path = "../mls-rs-core", version = "0.18.0" } thiserror = "1.0.40" wasm-bindgen = { version = "0.2", optional = true } zeroize = { version = "1", features = ["zeroize_derive"] } -rusqlite = { version = "0.30", default-features = false } +rusqlite = { version = "0.31", default-features = false } rand = "0.8" hex = { version = "0.4" } maybe-async = "0.2.10" diff --git a/mls-rs-uniffi/Cargo.toml b/mls-rs-uniffi/Cargo.toml index 49117c8d..62ab5fc3 100644 --- a/mls-rs-uniffi/Cargo.toml +++ b/mls-rs-uniffi/Cargo.toml @@ -17,9 +17,9 @@ name = "mls_rs_uniffi" [dependencies] async-trait = "0.1.77" maybe-async = "0.2.10" -mls-rs = { path = "../mls-rs" } -mls-rs-core = { path = "../mls-rs-core" } -mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl" } +mls-rs = { version = "0.39.0", path = "../mls-rs" } +mls-rs-core = { version = "0.18.0", path = "../mls-rs-core" } +mls-rs-crypto-openssl = { version = "0.9.0", path = "../mls-rs-crypto-openssl" } thiserror = "1.0.57" uniffi = "0.26.0" diff --git a/mls-rs-uniffi/tests/custom_storage_sync.py b/mls-rs-uniffi/tests/custom_storage_sync.py new file mode 100644 index 00000000..a8bec343 --- /dev/null +++ b/mls-rs-uniffi/tests/custom_storage_sync.py @@ -0,0 +1,87 @@ +from dataclasses import dataclass, field + +from mls_rs_uniffi import CipherSuite, generate_signature_keypair, Client, \ + GroupStateStorage, EpochRecord, ClientConfig, ProtocolVersion + + +@dataclass +class GroupStateData: + state: bytes + epoch_data: list[EpochRecord] = field(default_factory=list) + + +class PythonGroupStateStorage(GroupStateStorage): + + def __init__(self): + self.groups: dict[str, GroupStateData] = {} + + def state(self, group_id: bytes): + group = self.groups.get(group_id.hex()) + if group == None: + return None + + return group.state + + def epoch(self, group_id: bytes, epoch_id: int): + group = self.groups.get(group_id.hex()) + if group == None: + return None + + for epoch in group.epoch_data: + if epoch.id == epoch_id: + return epoch + + return None + + def write(self, group_id: bytes, group_state: bytes, + epoch_inserts: list[EpochRecord], + epoch_updates: list[EpochRecord]): + if group_id.hex() not in self.groups: + self.groups[group_id.hex()] = GroupStateData(group_state) + group = self.groups[group_id.hex()] + + for insert in epoch_inserts: + group.epoch_data.append(insert) + + for update in epoch_updates: + for i in range(len(group.epoch_data)): + if group.epoch_data[i].id == update.id: + group.epoch_data[i] = update + + def max_epoch_id(self, group_id: bytes): + group = self.groups.get(group_id.hex()) + if group == None: + return None + + last = group.epoch_data.last() + + if last == None: + return None + + return last.id + + +group_state_storage = PythonGroupStateStorage() +client_config = ClientConfig(group_state_storage, + use_ratchet_tree_extension=True) + +key = generate_signature_keypair(CipherSuite.CURVE25519_AES128) +alice = Client(b'alice', key, client_config) + +key = generate_signature_keypair(CipherSuite.CURVE25519_AES128) +bob = Client(b'bob', key, client_config) + +alice = alice.create_group(None) +message = bob.generate_key_package_message() + +output = alice.add_members([message]) +alice.process_incoming_message(output.commit_message) +bob = bob.join_group(None, output.welcome_messages[0]).group + +msg = alice.encrypt_application_message(b'hello, bob') +output = bob.process_incoming_message(msg) + +alice.write_to_storage() + +assert output.data == b'hello, bob' +assert len(group_state_storage.groups) == 1 diff --git a/mls-rs-uniffi/tests/scenarios.rs b/mls-rs-uniffi/tests/scenarios.rs index fb65c9f8..b81d86a4 100644 --- a/mls-rs-uniffi/tests/scenarios.rs +++ b/mls-rs-uniffi/tests/scenarios.rs @@ -44,6 +44,7 @@ macro_rules! generate_python_tests { generate_python_tests!(generate_signature_keypair, None); generate_python_tests!(client_config_default_sync, None); +generate_python_tests!(custom_storage_sync, None); generate_python_tests!(roster_update_sync, None); // TODO(mulmarta): it'll break if we use async trait which will be diff --git a/mls-rs-uniffi/tests/simple_scenario_sync.py b/mls-rs-uniffi/tests/simple_scenario_sync.py index 27a98fa8..f3a50b4b 100644 --- a/mls-rs-uniffi/tests/simple_scenario_sync.py +++ b/mls-rs-uniffi/tests/simple_scenario_sync.py @@ -1,66 +1,7 @@ -from dataclasses import dataclass, field - from mls_rs_uniffi import CipherSuite, generate_signature_keypair, Client, \ - GroupStateStorage, EpochRecord, ClientConfig, ProtocolVersion - -@dataclass -class GroupStateData: - state: bytes - epoch_data: list[EpochRecord] = field(default_factory=list) - -class PythonGroupStateStorage(GroupStateStorage): - def __init__(self): - self.groups: dict[str, GroupStateData] = {} - - def state(self, group_id: bytes): - group = self.groups.get(group_id.hex()) - - if group == None: - return None - - return group.state - - def epoch(self, group_id: bytes, epoch_id: int): - group = self.groups[group_id.hex()] - - if group == None: - return None - - for epoch in group.epoch_data: - if epoch.id == epoch_id: - return epoch - - return None - - def write(self, group_id: bytes, group_state: bytes, epoch_inserts: list[EpochRecord], epoch_updates: list[EpochRecord]): - if self.groups.get(group_id.hex()) == None: - self.groups[group_id.hex()] = GroupStateData(group_state) - - group = self.groups[group_id.hex()] - - for insert in epoch_inserts: - group.epoch_data.append(insert) - - for update in epoch_updates: - for i in range(len(group.epoch_data)): - if group.epoch_data[i].id == update.id: - group.epoch_data[i] = update - - def max_epoch_id(self, group_id: bytes): - group = self.groups.get(group_id.hex()) - - if group == None: - return None - - last = group.epoch_data.last() - - if last == None: - return None - - return last.id + client_config_default -group_state_storage = PythonGroupStateStorage() -client_config = ClientConfig(group_state_storage, use_ratchet_tree_extension=True) +client_config = client_config_default() key = generate_signature_keypair(CipherSuite.CURVE25519_AES128) alice = Client(b'alice', key, client_config) @@ -81,4 +22,3 @@ def max_epoch_id(self, group_id: bytes): alice.write_to_storage() assert output.data == b'hello, bob' -assert len(group_state_storage.groups) == 1 diff --git a/mls-rs/Cargo.toml b/mls-rs/Cargo.toml index cc3fd79b..bf8c8f78 100644 --- a/mls-rs/Cargo.toml +++ b/mls-rs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mls-rs" -version = "0.38.0" +version = "0.39.0" edition = "2021" description = "An implementation of Messaging Layer Security (RFC 9420)" homepage = "https://github.com/awslabs/mls-rs" @@ -51,10 +51,10 @@ benchmark_util = ["test_util", "default", "dep:mls-rs-crypto-openssl"] fuzz_util = ["test_util", "default", "dep:once_cell", "dep:mls-rs-crypto-openssl"] [dependencies] -mls-rs-core = { path = "../mls-rs-core", default-features = false, version = "0.17.1" } -mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", default-features = false, version = "0.10.0", optional = true } +mls-rs-core = { path = "../mls-rs-core", default-features = false, version = "0.18.0" } +mls-rs-identity-x509 = { path = "../mls-rs-identity-x509", default-features = false, version = "0.11.0", optional = true } zeroize = { version = "1", default-features = false, features = ["alloc", "zeroize_derive"] } -mls-rs-codec = { version = "0.5.0", path = "../mls-rs-codec", default-features = false} +mls-rs-codec = { version = "0.5.2", path = "../mls-rs-codec", default-features = false} thiserror = { version = "1.0.40", optional = true } itertools = { version = "0.12.0", default-features = false, features = ["use_alloc"]} cfg-if = "1" @@ -63,8 +63,8 @@ spin = { version = "0.9.8", default-features = false, features = ["mutex", "spin maybe-async = { version = "0.2.10" } # Optional dependencies -mls-rs-provider-sqlite = { path = "../mls-rs-provider-sqlite", version = "0.10.0", default-features = false, optional = true } -mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl", optional = true, version = "0.8.0" } +mls-rs-provider-sqlite = { path = "../mls-rs-provider-sqlite", version = "0.11.0", default-features = false, optional = true } +mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl", optional = true, version = "0.9.0" } # TODO: https://github.com/GoogleChromeLabs/wasm-bindgen-rayon rayon = { version = "1", optional = true } arbitrary = { version = "1", features = ["derive"], optional = true } @@ -102,11 +102,11 @@ rand_core = { version = "0.6", default-features = false, features = ["alloc"] } [target.'cfg(target_arch = "wasm32")'.dev-dependencies] wasm-bindgen-test = { version = "0.3.26", default-features = false } -mls-rs-crypto-webcrypto = { path = "../mls-rs-crypto-webcrypto", version = "0.3.0" } +mls-rs-crypto-webcrypto = { path = "../mls-rs-crypto-webcrypto", version = "0.4.0" } criterion = { version = "0.5.1", default-features = false, features = ["plotters", "cargo_bench_support", "async_futures", "html_reports"] } [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] -mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl", version = "0.8.0"} +mls-rs-crypto-openssl = { path = "../mls-rs-crypto-openssl", version = "0.9.0"} criterion = { version = "0.5.1", features = ["async_futures", "html_reports"] } [[example]] diff --git a/mls-rs/fuzz/Cargo.toml b/mls-rs/fuzz/Cargo.toml index e536501c..4dbee21c 100644 --- a/mls-rs/fuzz/Cargo.toml +++ b/mls-rs/fuzz/Cargo.toml @@ -11,7 +11,7 @@ edition = "2021" cargo-fuzz = true [dependencies] -mls-rs = { version = "0.38.0", path = "..", features = ["arbitrary", "fuzz_util"] } +mls-rs = { version = "0.39.0", path = "..", features = ["arbitrary", "fuzz_util"] } futures = "0.3.25" libfuzzer-sys = "0.4" once_cell = "1.13.0" diff --git a/mls-rs/test_harness_integration/Cargo.toml b/mls-rs/test_harness_integration/Cargo.toml index a42e1a36..6877e9fe 100644 --- a/mls-rs/test_harness_integration/Cargo.toml +++ b/mls-rs/test_harness_integration/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" publish = false [dependencies] -mls-rs = { version = "0.38.0", path = "..", default-features = false, features = ["std", "external_client", "state_update"]} +mls-rs = { version = "0.39.0", path = "..", default-features = false, features = ["std", "external_client", "state_update"]} tonic = "0.10.2" prost = "0.12.1" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } @@ -25,10 +25,10 @@ by_ref_proposal = [ "mls-rs/by_ref_proposal" ] default = ["tree_index", "private_message", "prior_epoch", "out_of_order", "psk", "custom_proposal", "by_ref_proposal"] [target.'cfg(target_arch = "wasm32")'.dependencies] -mls-rs-crypto-rustcrypto = { path = "../../mls-rs-crypto-rustcrypto", features = ["browser"], version = "0.9.0" } +mls-rs-crypto-rustcrypto = { path = "../../mls-rs-crypto-rustcrypto", features = ["browser"], version = "0.10.0" } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -mls-rs-crypto-openssl = { path = "../../mls-rs-crypto-openssl", version = "0.8.0"} +mls-rs-crypto-openssl = { path = "../../mls-rs-crypto-openssl", version = "0.9.0"} [build-dependencies] tonic-build = "0.10.2"