Page MenuHomePhorge

D352.1786961071.diff
No OneTemporary

Size
35 KB
Referenced Files
None
Subscribers
None

D352.1786961071.diff

diff --git a/Cargo.lock b/Cargo.lock
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
-version = 3
+version = 4
[[package]]
name = "aead"
@@ -25,21 +25,21 @@
[[package]]
name = "anstyle"
-version = "1.0.13"
+version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
+checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
[[package]]
name = "anyhow"
-version = "1.0.100"
+version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
+checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
[[package]]
name = "arrayvec"
-version = "0.7.6"
+version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
dependencies = [
"serde",
]
@@ -52,9 +52,9 @@
[[package]]
name = "base64ct"
-version = "1.8.0"
+version = "1.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
+checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
[[package]]
name = "block-buffer"
@@ -76,9 +76,9 @@
[[package]]
name = "bytes"
-version = "1.10.1"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
+checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
[[package]]
name = "cbc"
@@ -91,9 +91,9 @@
[[package]]
name = "cc"
-version = "1.2.39"
+version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f"
+checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -101,9 +101,9 @@
[[package]]
name = "cfg-if"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "chacha20"
@@ -142,18 +142,18 @@
[[package]]
name = "clap"
-version = "4.5.48"
+version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae"
+checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
dependencies = [
"clap_builder",
]
[[package]]
name = "clap_builder"
-version = "4.5.48"
+version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9"
+checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
dependencies = [
"anstyle",
"clap_lex",
@@ -162,15 +162,15 @@
[[package]]
name = "clap_lex"
-version = "0.7.5"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"
+checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
[[package]]
name = "codespan-reporting"
-version = "0.12.0"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
+checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681"
dependencies = [
"serde",
"termcolor",
@@ -194,9 +194,9 @@
[[package]]
name = "crypto-common"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
dependencies = [
"generic-array",
"rand_core",
@@ -228,14 +228,14 @@
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
name = "cxx"
-version = "1.0.186"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e9c4fe7f2f5dc5c62871a1b43992d197da6fa1394656a94276ac2894a90a6fe"
+checksum = "824894a4a85dca76d4c95c2b9098c036f5a29f627b30c12780774f6654e60974"
dependencies = [
"cc",
"cxx-build",
@@ -248,9 +248,9 @@
[[package]]
name = "cxx-build"
-version = "1.0.186"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5cf2909d37d80633ddd208676fc27c2608a7f035fff69c882421168038b26dd"
+checksum = "f1ae0b651ea5b0000b19513aef5a03f194d7e3486f2d9258b658da8677fe9036"
dependencies = [
"cc",
"codespan-reporting",
@@ -258,40 +258,39 @@
"proc-macro2",
"quote",
"scratch",
- "syn",
+ "syn 3.0.3",
]
[[package]]
name = "cxxbridge-cmd"
-version = "1.0.186"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "077f5ee3d3bfd8d27f83208fdaa96ddd50af7f096c77077cc4b94da10bfacefd"
+checksum = "fb05f91d3fb8435d9bab6ac5ce6ac1868be774325fb7fb2a91be39393b21388e"
dependencies = [
"clap",
"codespan-reporting",
"indexmap",
"proc-macro2",
"quote",
- "syn",
+ "syn 3.0.3",
]
[[package]]
name = "cxxbridge-flags"
-version = "1.0.186"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0108748615125b9f2e915dfafdffcbdabbca9b15102834f6d7e9a768f2f2864"
+checksum = "bf293202e0e3e98495785745389e8d0755b217e66f19194a5c695c25e03282ef"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.186"
+version = "1.0.199"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6e896681ef9b8dc462cfa6961d61909704bde0984b30bcb4082fe102b478890"
+checksum = "ca001d746947c7249ed9d332a10f7a59daedbafeb0ec68c5c18a7db7a93f6ccc"
dependencies = [
"indexmap",
"proc-macro2",
"quote",
- "rustversion",
- "syn",
+ "syn 3.0.3",
]
[[package]]
@@ -343,9 +342,9 @@
[[package]]
name = "either"
-version = "1.15.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d"
[[package]]
name = "equivalent"
@@ -361,9 +360,9 @@
[[package]]
name = "find-msvc-tools"
-version = "0.1.2"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959"
+checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
[[package]]
name = "foldhash"
@@ -383,9 +382,9 @@
[[package]]
name = "getrandom"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
dependencies = [
"cfg-if",
"libc",
@@ -394,9 +393,9 @@
[[package]]
name = "hashbrown"
-version = "0.16.0"
+version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
[[package]]
name = "hkdf"
@@ -418,9 +417,9 @@
[[package]]
name = "indexmap"
-version = "2.11.4"
+version = "2.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
+checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
dependencies = [
"equivalent",
"hashbrown",
@@ -447,15 +446,15 @@
[[package]]
name = "itoa"
-version = "1.0.15"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "libc"
-version = "0.2.176"
+version = "0.2.189"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174"
+checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
[[package]]
name = "link-cplusplus"
@@ -468,32 +467,31 @@
[[package]]
name = "matrix-pickle"
-version = "0.2.1"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2551de3bba2cc65b52dc6b268df6114011fe118ac24870fbcf1b35537bd721"
+checksum = "b3d65d46b7379dd0afa4a42f9b2269821d31afdee0111b5e0d74e3bee03553a0"
dependencies = [
"matrix-pickle-derive",
- "thiserror 1.0.69",
+ "thiserror",
]
[[package]]
name = "matrix-pickle-derive"
-version = "0.2.1"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f75de44c3120d78e978adbcf6d453b20ba011f3c46363e52d1dbbc72f545e9fb"
+checksum = "414b5e4c34009f2bc3fe35dd018f25755ca38858096574841c7332f99e2c7e77"
dependencies = [
"proc-macro-crate",
- "proc-macro-error2",
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
name = "memchr"
-version = "2.7.6"
+version = "2.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
+checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
[[package]]
name = "opaque-debug"
@@ -533,48 +531,27 @@
[[package]]
name = "proc-macro-crate"
-version = "3.4.0"
+version = "3.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
+checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
dependencies = [
"toml_edit",
]
-[[package]]
-name = "proc-macro-error-attr2"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "proc-macro-error2"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
-dependencies = [
- "proc-macro-error-attr2",
- "proc-macro2",
- "quote",
-]
-
[[package]]
name = "proc-macro2"
-version = "1.0.101"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
dependencies = [
"unicode-ident",
]
[[package]]
name = "prost"
-version = "0.13.5"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
+checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1"
dependencies = [
"bytes",
"prost-derive",
@@ -582,31 +559,31 @@
[[package]]
name = "prost-derive"
-version = "0.13.5"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d"
+checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf"
dependencies = [
"anyhow",
"itertools",
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
name = "quote"
-version = "1.0.41"
+version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rand"
-version = "0.8.5"
+version = "0.8.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a"
dependencies = [
"libc",
"rand_chacha",
@@ -641,18 +618,6 @@
"semver",
]
-[[package]]
-name = "rustversion"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
-
-[[package]]
-name = "ryu"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
-
[[package]]
name = "scratch"
version = "1.0.9"
@@ -661,15 +626,15 @@
[[package]]
name = "semver"
-version = "1.0.27"
+version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
[[package]]
name = "serde"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
dependencies = [
"serde_core",
"serde_derive",
@@ -687,35 +652,35 @@
[[package]]
name = "serde_core"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.228"
+version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 3.0.3",
]
[[package]]
name = "serde_json"
-version = "1.0.145"
+version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
+checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
dependencies = [
"itoa",
"memchr",
- "ryu",
"serde",
"serde_core",
+ "zmij",
]
[[package]]
@@ -731,9 +696,9 @@
[[package]]
name = "shlex"
-version = "1.3.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
[[package]]
name = "signature"
@@ -768,9 +733,9 @@
[[package]]
name = "syn"
-version = "2.0.106"
+version = "2.0.119"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
dependencies = [
"proc-macro2",
"quote",
@@ -778,68 +743,59 @@
]
[[package]]
-name = "termcolor"
-version = "1.4.1"
+name = "syn"
+version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3"
dependencies = [
- "winapi-util",
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
]
[[package]]
-name = "thiserror"
-version = "1.0.69"
+name = "termcolor"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
dependencies = [
- "thiserror-impl 1.0.69",
+ "winapi-util",
]
[[package]]
name = "thiserror"
-version = "2.0.17"
+version = "2.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
+checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
dependencies = [
- "thiserror-impl 2.0.17",
+ "thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.69"
+version = "2.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
+checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
dependencies = [
"proc-macro2",
"quote",
- "syn",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "2.0.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "syn 3.0.3",
]
[[package]]
name = "toml_datetime"
-version = "0.7.2"
+version = "1.1.1+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1"
+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
dependencies = [
"serde_core",
]
[[package]]
name = "toml_edit"
-version = "0.23.6"
+version = "0.25.13+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b"
+checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b"
dependencies = [
"indexmap",
"toml_datetime",
@@ -849,30 +805,30 @@
[[package]]
name = "toml_parser"
-version = "1.0.3"
+version = "1.1.3+spec-1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627"
+checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
dependencies = [
"winnow",
]
[[package]]
name = "typenum"
-version = "1.18.0"
+version = "1.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
[[package]]
name = "unicode-ident"
-version = "1.0.19"
+version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "unicode-width"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c"
+checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
[[package]]
name = "universal-hash"
@@ -892,8 +848,8 @@
[[package]]
name = "vodozemac"
-version = "0.9.0"
-source = "git+https://github.com/matrix-org/vodozemac/?rev=0.9.0#614d59a121200bbf1cf12858332ce203e9b1edbd"
+version = "0.10.0"
+source = "git+https://github.com/matrix-org/vodozemac/?rev=0.10.0#bb39ec65357989f975e0d47f9fb35e0656180151"
dependencies = [
"aes",
"arrayvec",
@@ -914,7 +870,7 @@
"serde_json",
"sha2",
"subtle",
- "thiserror 2.0.17",
+ "thiserror",
"x25519-dalek",
"zeroize",
]
@@ -936,7 +892,7 @@
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
@@ -956,24 +912,24 @@
[[package]]
name = "windows-link"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-sys"
-version = "0.61.1"
+version = "0.61.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f"
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
dependencies = [
"windows-link",
]
[[package]]
name = "winnow"
-version = "0.7.13"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
+checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
dependencies = [
"memchr",
]
@@ -992,40 +948,46 @@
[[package]]
name = "zerocopy"
-version = "0.8.27"
+version = "0.8.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
+checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.8.27"
+version = "0.8.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
+checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
[[package]]
name = "zeroize"
-version = "1.8.2"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
+checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
dependencies = [
"zeroize_derive",
]
[[package]]
name = "zeroize_derive"
-version = "1.4.2"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.119",
]
+
+[[package]]
+name = "zmij"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
diff --git a/cpp/Cargo.toml b/cpp/Cargo.toml
--- a/cpp/Cargo.toml
+++ b/cpp/Cargo.toml
@@ -14,7 +14,7 @@
[dependencies.vodozemac]
git = "https://github.com/matrix-org/vodozemac/"
-rev = "0.9.0"
+rev = "0.10.0"
[build-dependencies]
cxx-build = "1.0"
diff --git a/cpp/Makefile b/cpp/Makefile
--- a/cpp/Makefile
+++ b/cpp/Makefile
@@ -8,8 +8,8 @@
CARGO_ARGS =
endif
-VERSION = 0.2.1
-SOVERSION = 3
+VERSION = 1.0.0
+SOVERSION = 4
TARGET_DIR = ../target/$(BUILD_TYPE)
CXXBRIDGE_DIR = $(TARGET_DIR)/../cxxbridge
diff --git a/cpp/src/account.rs b/cpp/src/account.rs
--- a/cpp/src/account.rs
+++ b/cpp/src/account.rs
@@ -1,6 +1,6 @@
use super::{
ffi::{InboundCreationResult, OlmMessageParts, OneTimeKey},
- Curve25519PublicKey, Ed25519PublicKey, Ed25519Signature, Session,
+ Curve25519PublicKey, Ed25519PublicKey, Ed25519Signature, Session, SessionConfig
};
use vodozemac_maybe_derive::gen_noexcept;
use crate::maybe::Maybe;
@@ -12,7 +12,7 @@
let (message_type, ciphertext) = self.0.clone().to_parts();
OlmMessageParts {
- ciphertext: vodozemac::base64_encode(ciphertext),
+ ciphertext,
message_type,
}
}
@@ -22,7 +22,7 @@
pub fn olm_message_from_parts(parts: &OlmMessageParts) -> Result<Box<OlmMessage>, anyhow::Error> {
Ok(OlmMessage(vodozemac::olm::OlmMessage::from_parts(
parts.message_type,
- vodozemac::base64_decode(&parts.ciphertext)?.as_slice(),
+ parts.ciphertext.as_slice(),
)?)
.into())
}
@@ -80,7 +80,7 @@
Curve25519PublicKey(self.0.curve25519_key()).into()
}
- pub fn sign(&self, message: &str) -> Box<Ed25519Signature> {
+ pub fn sign(&self, message: &[u8]) -> Box<Ed25519Signature> {
Ed25519Signature(self.0.sign(message)).into()
}
@@ -131,12 +131,13 @@
#[gen_noexcept]
pub fn create_outbound_session(
&self,
+ session_config: &SessionConfig,
identity_key: &Curve25519PublicKey,
one_time_key: &Curve25519PublicKey,
) -> Result<Box<Session>, anyhow::Error> {
let session = self
.0
- .create_outbound_session(vodozemac::olm::SessionConfig::version_1(), identity_key.0, one_time_key.0);
+ .create_outbound_session(session_config.0, identity_key.0, one_time_key.0)?;
Ok(Box::new(Session(session)))
}
@@ -144,11 +145,16 @@
#[gen_noexcept]
pub fn create_inbound_session(
&mut self,
+ expected_config: &SessionConfig,
identity_key: &Curve25519PublicKey,
message: &OlmMessage,
) -> Result<InboundCreationResult, anyhow::Error> {
if let vodozemac::olm::OlmMessage::PreKey(m) = &message.0 {
- let result = self.0.create_inbound_session(identity_key.0, m)?;
+ let result = self.0.create_inbound_session(
+ expected_config.0,
+ identity_key.0,
+ m,
+ )?;
Ok(result.into())
} else {
diff --git a/cpp/src/lib.rs.in b/cpp/src/lib.rs.in
--- a/cpp/src/lib.rs.in
+++ b/cpp/src/lib.rs.in
@@ -44,7 +44,10 @@
session_from_pickle_noexcept,
session_from_libolm_pickle,
session_from_libolm_pickle_noexcept,
- Session
+ Session,
+ SessionConfig,
+ new_session_config_default,
+ new_session_config_version_1,
};
use types::{
curve_key_from_base64,
@@ -67,7 +70,7 @@
#[namespace = "vodozemac::olm"]
struct OlmMessageParts {
message_type: usize,
- ciphertext: String,
+ ciphertext: Vec<u8>,
}
#[namespace = "vodozemac::olm"]
@@ -106,7 +109,7 @@
type Ed25519PublicKey;
fn ed25519_key_from_base64(key: &str) -> Result<Box<Ed25519PublicKey>>;
fn to_base64(self: &Ed25519PublicKey) -> String;
- fn verify(self: &Ed25519PublicKey, message: &str, signature: &Ed25519Signature) -> Result<()>;
+ fn verify(self: &Ed25519PublicKey, message: &[u8], signature: &Ed25519Signature) -> Result<()>;
type Ed25519Signature;
fn ed25519_signature_from_base64(key: &str) -> Result<Box<Ed25519Signature>>;
fn to_base64(self: &Ed25519Signature) -> String;
@@ -114,11 +117,15 @@
#[namespace = "vodozemac::olm"]
extern "Rust" {
+ type SessionConfig;
+ fn new_session_config_default() -> Box<SessionConfig>;
+ fn new_session_config_version_1() -> Box<SessionConfig>;
+
type Account;
fn new_account() -> Box<Account>;
fn ed25519_key(self: &Account) -> Box<Ed25519PublicKey>;
fn curve25519_key(self: &Account) -> Box<Curve25519PublicKey>;
- fn sign(self: &Account, message: &str) -> Box<Ed25519Signature>;
+ fn sign(self: &Account, message: &[u8]) -> Box<Ed25519Signature>;
fn generate_one_time_keys(self: &mut Account, count: usize) -> Box<OneTimeKeyGenerationResult>;
fn one_time_keys(self: &Account) -> Vec<OneTimeKey>;
fn generate_fallback_key(self: &mut Account) -> Vec<Curve25519PublicKey>;
@@ -130,11 +137,13 @@
fn pickle(self: &Account, pickle_key: &[u8; 32]) -> String;
fn create_outbound_session(
self: &Account,
+ session_config: &SessionConfig,
identity_key: &Curve25519PublicKey,
one_time_key: &Curve25519PublicKey,
) -> Result<Box<Session>>;
fn create_inbound_session(
self: &mut Account,
+ expected_config: &SessionConfig,
identity_key: &Curve25519PublicKey,
message: &OlmMessage,
) -> Result<InboundCreationResult>;
@@ -147,7 +156,7 @@
fn session_id(self: &Session) -> String;
fn session_keys(self: &Session) -> SessionKeys;
fn session_matches(self: &Session, message: &OlmMessage) -> bool;
- fn encrypt(self: &mut Session, plaintext: &str) -> Box<OlmMessage>;
+ fn encrypt(self: &mut Session, plaintext: &str) -> Result<Box<OlmMessage>>;
fn decrypt(self: &mut Session, message: &OlmMessage) -> Result<Vec<u8>>;
fn session_from_pickle(pickle: &str, pickle_key: &[u8; 32]) -> Result<Box<Session>>;
fn session_from_libolm_pickle(pickle: &str, pickle_key: &[u8]) -> Result<Box<Session>>;
diff --git a/cpp/src/session.rs b/cpp/src/session.rs
--- a/cpp/src/session.rs
+++ b/cpp/src/session.rs
@@ -13,8 +13,9 @@
self.0.pickle().encrypt(pickle_key)
}
- pub fn encrypt(&mut self, plaintext: &str) -> Box<OlmMessage> {
- OlmMessage(self.0.encrypt(plaintext)).into()
+ #[gen_noexcept]
+ pub fn encrypt(&mut self, plaintext: &str) -> Result<Box<OlmMessage>, anyhow::Error> {
+ Ok(OlmMessage(self.0.encrypt(plaintext)?).into())
}
#[gen_noexcept]
@@ -58,3 +59,13 @@
let res = vodozemac::olm::Session::from_libolm_pickle(pickle, pickle_key)?;
Ok(Session(res).into())
}
+
+pub struct SessionConfig(pub(crate) vodozemac::olm::SessionConfig);
+
+pub fn new_session_config_default() -> Box<SessionConfig> {
+ SessionConfig(vodozemac::olm::SessionConfig::default()).into()
+}
+
+pub fn new_session_config_version_1() -> Box<SessionConfig> {
+ SessionConfig(vodozemac::olm::SessionConfig::version_1()).into()
+}
diff --git a/cpp/src/types.rs b/cpp/src/types.rs
--- a/cpp/src/types.rs
+++ b/cpp/src/types.rs
@@ -34,8 +34,8 @@
}
#[gen_noexcept]
- pub fn verify(&self, message: &str, signature: &Ed25519Signature) -> Result<(), anyhow::Error> {
- Ok(self.0.verify(message.as_bytes(), &signature.0)?)
+ pub fn verify(&self, message: &[u8], signature: &Ed25519Signature) -> Result<(), anyhow::Error> {
+ Ok(self.0.verify(message, &signature.0)?)
}
}
diff --git a/cpp/tests/account.cpp b/cpp/tests/account.cpp
--- a/cpp/tests/account.cpp
+++ b/cpp/tests/account.cpp
@@ -161,19 +161,19 @@
auto alice = olm::new_account();
auto key = alice->ed25519_key();
std::string str = "{}";
- auto signature = alice->sign(Str(str));
- REQUIRE_VODOZEMAC_OK(key->MAYBE_NOEXCEPT(verify)(Str(str), *signature));
+ auto signature = alice->sign(as_u8_slice(str));
+ REQUIRE_VODOZEMAC_OK(key->MAYBE_NOEXCEPT(verify)(as_u8_slice(str), *signature));
{
auto cloned_signature = types::ed25519_signature_from_base64(signature->to_base64());
- REQUIRE_VODOZEMAC_OK(key->MAYBE_NOEXCEPT(verify)(Str(str), *cloned_signature));
+ REQUIRE_VODOZEMAC_OK(key->MAYBE_NOEXCEPT(verify)(as_u8_slice(str), *cloned_signature));
}
{
auto cloned_key = types::ed25519_key_from_base64(key->to_base64());
- REQUIRE_VODOZEMAC_OK(cloned_key->MAYBE_NOEXCEPT(verify)(Str(str), *signature));
+ REQUIRE_VODOZEMAC_OK(cloned_key->MAYBE_NOEXCEPT(verify)(as_u8_slice(str), *signature));
}
std::string str2 = "{\"foo\": \"bar\"}";
- auto signature2 = alice->sign(Str(str2));
- REQUIRE_VODOZEMAC_ERROR(key->MAYBE_NOEXCEPT(verify)(Str(str2), *signature));
- REQUIRE_VODOZEMAC_ERROR(key->MAYBE_NOEXCEPT(verify)(Str(str), *signature2));
+ auto signature2 = alice->sign(as_u8_slice(str2));
+ REQUIRE_VODOZEMAC_ERROR(key->MAYBE_NOEXCEPT(verify)(as_u8_slice(str2), *signature));
+ REQUIRE_VODOZEMAC_ERROR(key->MAYBE_NOEXCEPT(verify)(as_u8_slice(str), *signature2));
}
diff --git a/cpp/tests/session.cpp b/cpp/tests/session.cpp
--- a/cpp/tests/session.cpp
+++ b/cpp/tests/session.cpp
@@ -22,8 +22,9 @@
auto [key_id, one_time_key] = std::move(one_time_keys.front());
auto identity_key = bob->curve25519_key();
+ auto session_config = olm::new_session_config_version_1();
- auto session = alice->create_outbound_session(*identity_key, *one_time_key);
+ auto session = REQUIRE_VODOZEMAC_OK(alice->MAYBE_NOEXCEPT(create_outbound_session)(*session_config, *identity_key, *one_time_key));
auto ret = SessionCreationResult{
std::move(alice),
@@ -109,10 +110,11 @@
auto alice_key = alice->curve25519_key();
auto plaintext = "It's a secret to everybody";
- auto message = session->encrypt(plaintext);
+ auto message = REQUIRE_VODOZEMAC_OK(session->MAYBE_NOEXCEPT(encrypt)(plaintext));
+ auto expected_config = olm::new_session_config_version_1();
auto [bob_session, decrypted] =
- bob->create_inbound_session(*alice_key, *message);
+ REQUIRE_VODOZEMAC_OK(bob->MAYBE_NOEXCEPT(create_inbound_session)(*expected_config, *alice_key, *message));
REQUIRE(session->session_id() ==
bob_session->session_id());
@@ -123,7 +125,7 @@
TEST_CASE("InvalidDecryption", "[SessionTest]") {
auto parts = olm::OlmMessageParts{
0,
- "",
+ rust::Vec<std::uint8_t>(),
};
REQUIRE_VODOZEMAC_ERROR(MAYBE_NOEXCEPT(olm::olm_message_from_parts)(parts));
@@ -135,10 +137,11 @@
auto alice_key = alice->curve25519_key();
auto plaintext = "It's a secret to everybody";
- auto message = session->encrypt(plaintext);
+ auto message = REQUIRE_VODOZEMAC_OK(session->MAYBE_NOEXCEPT(encrypt)(plaintext));
+ auto expected_config = olm::new_session_config_version_1();
auto [bob_session, decrypted] =
- bob->create_inbound_session(*alice_key, *message);
+ REQUIRE_VODOZEMAC_OK(bob->MAYBE_NOEXCEPT(create_inbound_session)(*expected_config, *alice_key, *message));
REQUIRE(session->session_id() ==
bob_session->session_id());
@@ -147,7 +150,7 @@
plaintext = "Grumble grumble";
- message = bob_session->encrypt(plaintext);
+ message = REQUIRE_VODOZEMAC_OK(bob_session->MAYBE_NOEXCEPT(encrypt)(plaintext));
decrypted = REQUIRE_VODOZEMAC_OK(session->MAYBE_NOEXCEPT(decrypt)(*message));
REQUIRE(std::string(plaintext) == as_std_string(decrypted));
@@ -159,13 +162,14 @@
auto alice_key = alice->curve25519_key();
auto plaintext = "It's a secret to everybody";
- auto message = session->encrypt(plaintext);
+ auto message = REQUIRE_VODOZEMAC_OK(session->MAYBE_NOEXCEPT(encrypt)(plaintext));
+ auto expected_config = olm::new_session_config_version_1();
auto [bob_session, decrypted] =
- bob->create_inbound_session(*alice_key, *message);
+ REQUIRE_VODOZEMAC_OK(bob->MAYBE_NOEXCEPT(create_inbound_session)(*expected_config, *alice_key, *message));
plaintext = "Grumble grumble";
- message = session->encrypt(plaintext);
+ message = REQUIRE_VODOZEMAC_OK(session->MAYBE_NOEXCEPT(encrypt)(plaintext));
REQUIRE(bob_session->session_matches(*message));
}
@@ -177,10 +181,11 @@
auto alice_key = alice->curve25519_key();
auto plaintext = "It's a secret to everybody";
- auto message = session->encrypt(plaintext);
+ auto message = REQUIRE_VODOZEMAC_OK(session->MAYBE_NOEXCEPT(encrypt)(plaintext));
+ auto expected_config = olm::new_session_config_version_1();
auto [bob_session, decrypted] =
- bob->create_inbound_session(*alice_key, *message);
+ REQUIRE_VODOZEMAC_OK(bob->MAYBE_NOEXCEPT(create_inbound_session)(*expected_config, *alice_key, *message));
plaintext = "Grumble grumble";
message = session2->encrypt(plaintext);
diff --git a/cpp/tests/util.hpp b/cpp/tests/util.hpp
--- a/cpp/tests/util.hpp
+++ b/cpp/tests/util.hpp
@@ -7,6 +7,7 @@
#include <functional>
#include <catch2/catch_test_macros.hpp>
#include <olm/olm.h>
+#include "../../target/cxxbridge/vodozemac/src/lib.rs.h"
inline std::array<uint8_t, 32> PICKLE_KEY = {};
// olm pickles are of variable length and are then hashed to obtain the actual key
@@ -20,6 +21,11 @@
return ret;
}
+[[nodiscard]] inline rust::Slice<const std::uint8_t> as_u8_slice(const std::string &str)
+{
+ return rust::Slice<const std::uint8_t>(reinterpret_cast<const std::uint8_t *>(str.data()), str.size());
+}
+
inline void check_olm_error(std::size_t code)
{
REQUIRE(code != olm_error());

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 17, 3:04 AM (22 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1730748
Default Alt Text
D352.1786961071.diff (35 KB)

Event Timeline