From dddc86fee8d3a41c166f5aa2b02c05a1d9b1eaf8 Mon Sep 17 00:00:00 2001 From: Sachymetsu Date: Mon, 20 Apr 2026 17:15:20 +0000 Subject: [PATCH] Upgrade to wharrgarbl --- Cargo.lock | 512 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Cargo.toml | 6 +----- src/net.rs | 21 +++++++++------------ striker-proto/Cargo.toml | 6 +++--- striker-proto/src/lib.rs | 85 +++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------- 5 file(s) changed, 239 insertion(s)(+), 391 deletion(s)(-) diff --git a/Cargo.lock b/Cargo.lock --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.11.0", + "bitflags 2.11.1", "cc", "jni", "libc", @@ -213,12 +213,6 @@ ] [[package]] -name = "base16ct" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd307490d624467aa6f74b0eabb77633d1f758a7b25f12bceb0b22e08d9726f6" - -[[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -340,7 +334,7 @@ "bevy_reflect", "bevy_tasks", "bevy_utils", - "bitflags 2.11.0", + "bitflags 2.11.1", "bumpalo", "concurrent-queue", "derive_more", @@ -469,7 +463,7 @@ "glam", "itertools", "libm", - "rand 0.9.2", + "rand 0.9.4", "rand_distr", "serde", "thiserror 2.0.18", @@ -509,7 +503,7 @@ checksum = "e24368df4cff95c92448a33c46f7db4ff51016a3024d27bd2daa49d0e3ce03f4" dependencies = [ "bevy", - "bitflags 2.11.0", + "bitflags 2.11.1", "color-eyre", "ratatui", "tracing", @@ -686,9 +680,9 @@ [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" dependencies = [ "serde_core", ] @@ -769,9 +763,9 @@ [[package]] name = "cc" -version = "1.2.58" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "jobserver", @@ -792,44 +786,10 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "chacha20" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures 0.3.0", -] - -[[package]] -name = "chacha20poly1305" -version = "0.11.0-rc.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9ed179664f12fd6f155f6dd632edf5f3806d48c228c67ff78366f2a0eb6b5e" -dependencies = [ - "aead", - "chacha20", - "cipher", - "poly1305", -] - -[[package]] -name = "cipher" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" -dependencies = [ - "block-buffer 0.12.0", - "crypto-common 0.2.1", - "inout", -] - -[[package]] name = "cmov" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0758edba32d61d1fd9f4d69491b47604b91ee2f7e6b33de7e54ca4ebe55dc3" +checksum = "3f88a43d011fc4a6876cb7344703e297c71dda42494fee094d5f7c76bf13f746" [[package]] name = "cobs" @@ -918,12 +878,6 @@ checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" [[package]] -name = "const-oid" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" - -[[package]] name = "convert_case" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -931,12 +885,6 @@ dependencies = [ "unicode-segmentation", ] - -[[package]] -name = "cpubits" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861" [[package]] name = "cpufeatures" @@ -992,7 +940,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "crossterm_winapi", "derive_more", "document-features", @@ -1014,22 +962,6 @@ ] [[package]] -name = "crypto-bigint" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a0d26b245348befa0c121944541476763dcc46ede886c88f9d12e1697d27c3" -dependencies = [ - "cpubits", - "ctutils", - "getrandom 0.4.2", - "hybrid-array", - "num-traits", - "rand_core 0.10.0", - "subtle", - "zeroize", -] - -[[package]] name = "crypto-common" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1045,9 +977,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" dependencies = [ - "getrandom 0.4.2", "hybrid-array", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] @@ -1073,12 +1004,11 @@ [[package]] name = "ctutils" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1005a6d4446f5120ef475ad3d2af2b30c49c2c9c6904258e3bb30219bebed5e4" +checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" dependencies = [ "cmov", - "subtle", ] [[package]] @@ -1122,16 +1052,6 @@ checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" [[package]] -name = "der" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71fd89660b2dc699704064e59e9dba0147b903e85319429e131620d022be411b" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1164,19 +1084,6 @@ ] [[package]] -name = "dhkem" -version = "0.1.0-rc.0" -source = "git+https://github.com/RustCrypto/KEMs?rev=2d277162e0c5ed1c53bb315d0c0dace394cba70a#2d277162e0c5ed1c53bb315d0c0dace394cba70a" -dependencies = [ - "elliptic-curve", - "hkdf", - "k256", - "kem", - "rand_core 0.10.0", - "zeroize", -] - -[[package]] name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1194,7 +1101,6 @@ dependencies = [ "block-buffer 0.12.0", "crypto-common 0.2.1", - "ctutils", ] [[package]] @@ -1203,7 +1109,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "block2", "libc", "objc2", @@ -1231,42 +1137,10 @@ checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] -name = "ecdsa" -version = "0.17.0-rc.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91bbdd377139884fafcad8dc43a760a3e1e681aa26db910257fa6535b70e1829" -dependencies = [ - "der", - "elliptic-curve", - "signature", - "zeroize", -] - -[[package]] name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "elliptic-curve" -version = "0.14.0-rc.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e84043d573efd4ac9d2d125817979a379204bf7e328b25a4a30487e8d100e618" -dependencies = [ - "base16ct", - "crypto-bigint", - "crypto-common 0.2.1", - "digest 0.11.2", - "hkdf", - "hybrid-array", - "rand_core 0.10.0", - "rustcrypto-ff", - "rustcrypto-group", - "sec1", - "subtle", - "zeroize", -] [[package]] name = "embedded-io" @@ -1359,9 +1233,9 @@ [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "filedescriptor" @@ -1512,7 +1386,7 @@ "cfg-if", "libc", "r-efi 6.0.0", - "rand_core 0.10.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -1566,6 +1440,12 @@ ] [[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + +[[package]] name = "heapless" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1595,30 +1475,12 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] -name = "hkdf" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aaa26c720c68b866f2c96ef5c1264b3e6f473fe5d4ce61cd44bbe913e553018" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6303bc9732ae41b04cb554b844a762b4115a61bfaa81e3e83050991eeb56863f" -dependencies = [ - "digest 0.11.2", -] - -[[package]] name = "hybrid-array" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3944cf8cf766b40e2a1a333ee5e9b563f854d5fa49d6a8ca2764e97c6eddb214" dependencies = [ - "subtle", + "ctutils", "typenum", "zeroize", ] @@ -1643,12 +1505,12 @@ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -1816,25 +1678,14 @@ [[package]] name = "js-sys" -version = "0.3.94" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ "cfg-if", "futures-util", "once_cell", "wasm-bindgen", -] - -[[package]] -name = "k256" -version = "0.14.0-rc.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2c6c227649d5ec80eaae541f1736232641a0bcdb3062a52b34edb42054158" -dependencies = [ - "cpubits", - "ecdsa", - "elliptic-curve", ] [[package]] @@ -1849,13 +1700,24 @@ ] [[package]] -name = "kem" -version = "0.3.0-rc.6" +name = "keccak" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ae2c3347ff4a7af4f679a9e397c2c7e6034a00b773dd2dd3c001d7f40897c9" +checksum = "9e24a010dd405bd7ed803e5253182815b41bf2e6a80cc3bfc066658e03a198aa" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "hybrid-array", +] + +[[package]] +name = "kem" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01737161ba802849cfd486b5bd209d38ba4943494c249a8126005170c7621edd" dependencies = [ "crypto-common 0.2.1", - "rand_core 0.10.0", + "rand_core 0.10.1", ] [[package]] @@ -1878,9 +1740,9 @@ [[package]] name = "libc" -version = "0.2.184" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libm" @@ -1894,7 +1756,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f50e8f47623268b5407192d26876c4d7f89d686ca130fdc53bced4814cd29f8" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -1926,9 +1788,9 @@ [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ "hashbrown 0.16.1", ] @@ -2031,12 +1893,38 @@ ] [[package]] +name = "ml-kem" +version = "0.3.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04437cb1a66c0b78740927b76cc61f218344b9f6ef3dd430e283274a718ef0e9" +dependencies = [ + "hybrid-array", + "kem", + "module-lattice", + "rand_core 0.10.1", + "sha3", + "zeroize", +] + +[[package]] +name = "module-lattice" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "164eb3faeaecbd14b0b2a917c1b4d0c035097a9c559b0bed85c2cdd032bc8faa" +dependencies = [ + "ctutils", + "hybrid-array", + "num-traits", + "zeroize", +] + +[[package]] name = "ndk" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "jni-sys 0.3.1", "log", "ndk-sys", @@ -2065,7 +1953,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "libc", @@ -2078,7 +1966,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "cfg-if", "cfg_aliases", "libc", @@ -2281,7 +2169,7 @@ checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", - "sha2 0.10.9", + "sha2", ] [[package]] @@ -2311,7 +2199,7 @@ checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand 0.8.5", + "rand 0.8.6", ] [[package]] @@ -2377,16 +2265,6 @@ ] [[package]] -name = "poly1305" -version = "0.9.0-rc.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19feddcbdf17fad33f40041c7f9e768faf19455f32a6d52ba1b8b65ffc7b1cae" -dependencies = [ - "cpufeatures 0.3.0", - "universal-hash", -] - -[[package]] name = "portable-atomic" version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2394,9 +2272,9 @@ [[package]] name = "portable-atomic-util" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", ] @@ -2444,7 +2322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.10+spec-1.1.0", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] @@ -2479,18 +2357,18 @@ [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "rand_core 0.6.4", ] [[package]] name = "rand" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" dependencies = [ "rand_chacha", "rand_core 0.9.5", @@ -2523,9 +2401,9 @@ [[package]] name = "rand_core" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_distr" @@ -2534,7 +2412,7 @@ checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" dependencies = [ "num-traits", - "rand 0.9.2", + "rand 0.9.4", ] [[package]] @@ -2543,7 +2421,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59" dependencies = [ - "rand 0.9.2", + "rand 0.9.4", "rustversion", ] @@ -2567,7 +2445,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "compact_str", "hashbrown 0.16.1", "indoc", @@ -2619,7 +2497,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.16.1", "indoc", "instability", @@ -2644,7 +2522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", ] [[package]] @@ -2692,33 +2570,12 @@ ] [[package]] -name = "rustcrypto-ff" -version = "0.14.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2a8adb347447693cd2ba0d218c4b66c62da9b0a5672b17b981e4291ec65ff6" -dependencies = [ - "rand_core 0.10.0", - "subtle", -] - -[[package]] -name = "rustcrypto-group" -version = "0.14.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "369f9b61aa45933c062c9f6b5c3c50ab710687eca83dd3802653b140b43f85ed" -dependencies = [ - "rand_core 0.10.0", - "rustcrypto-ff", - "subtle", -] - -[[package]] name = "rustix" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "errno", "libc", "linux-raw-sys", @@ -2740,34 +2597,22 @@ [[package]] name = "sachy-config" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#dddae293fb28a8d70f2b5a77f2992234ab65db4b" dependencies = [ "base64ct", "miette", - "toml_edit 0.25.10+spec-1.1.0", -] - -[[package]] -name = "sachy-crypto" -version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" -dependencies = [ - "chacha20poly1305", - "dhkem", - "elliptic-curve", - "k256", - "sha2 0.11.0-rc.5", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] name = "sachy-fmt" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#dddae293fb28a8d70f2b5a77f2992234ab65db4b" [[package]] name = "sachy-mdns" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#dddae293fb28a8d70f2b5a77f2992234ab65db4b" dependencies = [ "sachy-fmt", "winnow 0.7.15", @@ -2789,24 +2634,10 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "sec1" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" -dependencies = [ - "base16ct", - "ctutils", - "der", - "hybrid-array", - "subtle", - "zeroize", -] - -[[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" @@ -2863,14 +2694,13 @@ ] [[package]] -name = "sha2" -version = "0.11.0-rc.5" +name = "sha3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5f3b1e2dc8aad28310d8410bd4d7e180eca65fca176c52ab00d364475d0024" +checksum = "be176f1a57ce4e3d31c1a166222d9768de5954f811601fb7ca06fc8203905ce1" dependencies = [ - "cfg-if", - "cpufeatures 0.2.17", "digest 0.11.2", + "keccak", ] [[package]] @@ -2917,15 +2747,6 @@ dependencies = [ "errno", "libc", -] - -[[package]] -name = "signature" -version = "3.0.0-rc.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1880df446116126965eeec169136b2e0251dba37c6223bcc819569550edea3" -dependencies = [ - "rand_core 0.10.0", ] [[package]] @@ -3022,14 +2843,13 @@ "bytes", "color-eyre", "crossterm", - "dhkem", "futures-concurrency", + "getrandom 0.4.2", "jiff", "postcard", "rapidhash", "ratatui", "sachy-config", - "sachy-crypto", "sachy-mdns", "serde", "socket2", @@ -3041,10 +2861,10 @@ version = "0.1.0" dependencies = [ "aead", - "dhkem", "postcard", - "sachy-crypto", + "rand_core 0.10.1", "serde", + "wharrgarbl", ] [[package]] @@ -3073,12 +2893,6 @@ "quote", "syn 2.0.117", ] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "supports-color" @@ -3162,7 +2976,7 @@ dependencies = [ "anyhow", "base64", - "bitflags 2.11.0", + "bitflags 2.11.1", "fancy-regex", "filedescriptor", "finl_unicode", @@ -3179,7 +2993,7 @@ "pest", "pest_derive", "phf", - "sha2 0.10.9", + "sha2", "signal-hook", "siphasher", "terminfo", @@ -3308,9 +3122,9 @@ [[package]] name = "toml_edit" -version = "0.25.10+spec-1.1.0" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap", "toml_datetime 1.1.1+spec-1.1.0", @@ -3436,9 +3250,9 @@ [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "ucd-trie" @@ -3494,16 +3308,6 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "universal-hash" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" -dependencies = [ - "crypto-common 0.2.1", - "ctutils", -] - -[[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3511,9 +3315,9 @@ [[package]] name = "uuid" -version = "1.23.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ "atomic", "getrandom 0.4.2", @@ -3572,11 +3376,11 @@ [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -3585,14 +3389,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -3603,9 +3407,9 @@ [[package]] name = "wasm-bindgen-futures" -version = "0.4.67" +version = "0.4.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" dependencies = [ "js-sys", "wasm-bindgen", @@ -3613,9 +3417,9 @@ [[package]] name = "wasm-bindgen-macro" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3623,9 +3427,9 @@ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", @@ -3636,9 +3440,9 @@ [[package]] name = "wasm-bindgen-shared" -version = "0.2.117" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -3671,7 +3475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap", "semver", @@ -3679,9 +3483,9 @@ [[package]] name = "web-sys" -version = "0.3.94" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" dependencies = [ "js-sys", "wasm-bindgen", @@ -3715,7 +3519,7 @@ dependencies = [ "getrandom 0.3.4", "mac_address", - "sha2 0.10.9", + "sha2", "thiserror 1.0.69", "uuid", ] @@ -3775,13 +3579,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.11.1", "bytemuck", "js-sys", "log", "serde", "thiserror 2.0.18", "web-sys", +] + +[[package]] +name = "wharrgarbl" +version = "0.1.0" +source = "git+https://tangled.org/sachy.dev/wharrgarbl#f10abbd1e303519f7d154cbe6f8074512495d5f2" +dependencies = [ + "aead", + "ctutils", + "hybrid-array", + "ml-kem", + "rand_core 0.10.1", + "wharrgarbl-strobe", + "wharrgarbl-utils", + "zeroize", +] + +[[package]] +name = "wharrgarbl-strobe" +version = "0.1.0" +source = "git+https://tangled.org/sachy.dev/wharrgarbl#f10abbd1e303519f7d154cbe6f8074512495d5f2" +dependencies = [ + "aead", + "ctutils", + "hybrid-array", + "keccak", + "wharrgarbl-utils", + "zeroize", +] + +[[package]] +name = "wharrgarbl-utils" +version = "0.1.0" +source = "git+https://tangled.org/sachy.dev/wharrgarbl#f10abbd1e303519f7d154cbe6f8074512495d5f2" +dependencies = [ + "aead", ] [[package]] @@ -3858,6 +3698,12 @@ ] [[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + +[[package]] name = "wit-bindgen-core" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3906,7 +3752,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", - "bitflags 2.11.0", + "bitflags 2.11.1", "indexmap", "log", "serde", diff --git a/Cargo.toml b/Cargo.toml --- a/Cargo.toml +++ b/Cargo.toml @@ -47,11 +47,7 @@ serde.workspace = true postcard.workspace = true jiff = "0.2.18" -sachy-crypto = { git = "https://tangled.org/sachy.dev/sachy-embed-core" } -dhkem = { version = "0.1.0-rc.0", features = ["ecdh", "k256"] } - -[patch.crates-io] -dhkem = { git = "https://github.com/RustCrypto/KEMs", rev = "2d277162e0c5ed1c53bb315d0c0dace394cba70a" } +getrandom = { version = "0.4", features = ["sys_rng"]} [build-dependencies] sachy-config = { git = "https://tangled.org/sachy.dev/sachy-embed-core", package = "sachy-config" } diff --git a/src/net.rs b/src/net.rs --- a/src/net.rs +++ b/src/net.rs @@ -15,6 +15,7 @@ }; use futures_concurrency::future::Race; +use getrandom::{SysRng, rand_core::UnwrapErr}; use striker_proto::{Client, ClientBuilder}; use crate::constants::NOISE_PSK; @@ -129,25 +130,21 @@ } async fn transport_handshake(mut tcp: &Async) -> color_eyre::Result { - let (encap, handshake) = ClientBuilder::start(); + let mut client = ClientBuilder::new(&NOISE_PSK); - let msg = encap.serialize(); - let msg = msg.as_bytes(); - let msg_len = u16::try_from(msg.len()).unwrap().to_be_bytes(); + let mut buffer = Vec::with_capacity(2048); - tcp.write_all(&msg_len).await?; - tcp.write_all(msg).await?; + client.start(&mut UnwrapErr(SysRng), &mut buffer)?; - let mut payload = vec![0u8; 1024]; - let mut msg_len = [0u8; 2]; + tcp.write_all(buffer.as_ref()).await?; - tcp.read_exact(&mut msg_len).await?; + buffer.resize_with(2048, Default::default); - let msg_len = usize::from(u16::from_be_bytes(msg_len)); + let read = tcp.read(&mut buffer).await?; - tcp.read_exact(&mut payload[..msg_len]).await?; + buffer.truncate(read); - let transport = handshake.finish(&payload[..msg_len], &NOISE_PSK)?; + let transport = client.finish(buffer.as_ref())?; Ok(transport) } diff --git a/striker-proto/Cargo.toml b/striker-proto/Cargo.toml --- a/striker-proto/Cargo.toml +++ b/striker-proto/Cargo.toml @@ -9,6 +9,6 @@ [dependencies] serde = { workspace = true, features = ["alloc"] } postcard = { workspace = true, features = ["alloc"] } -sachy-crypto = { git = "https://tangled.org/sachy.dev/sachy-embed-core", features = ["alloc"] } -aead = "=0.6.0-rc.10" -dhkem = { version = "0.1.0-rc.0", features = ["ecdh", "k256"] } +wharrgarbl = { git = "https://tangled.org/sachy.dev/wharrgarbl" } +aead = { version = "=0.6.0-rc.10", features = ["alloc"] } +rand_core = "0.10" diff --git a/striker-proto/src/lib.rs b/striker-proto/src/lib.rs --- a/striker-proto/src/lib.rs +++ b/striker-proto/src/lib.rs @@ -2,10 +2,11 @@ use aead::Buffer; use alloc::{string::String, vec::Vec}; -use dhkem::{Secp256k1Kem, kem::Ciphertext}; -use sachy_crypto::{ - ClientHandshake, EncapsulatedPublicKey, ProtoError, ReceivingState, SendingState, - ServerHandshake, TransportState, +use rand_core::CryptoRng; +use wharrgarbl::{ + ClientHandshake128, Sec128, ServerHandshake128, + handshake::{ClientHandshake, ServerHandshake}, + transport::{AeadState, RecvState, SendState}, }; extern crate alloc; @@ -61,38 +62,52 @@ } pub struct ClientBuilder { - handshake: ClientHandshake, + handshake: ClientHandshake128, } impl ClientBuilder { - pub fn start() -> (EncapsulatedPublicKey, Self) { - let (encap, handshake) = ClientHandshake::send(); - - (encap, Self { handshake }) + pub fn new(psk: &[u8; 32]) -> Self { + Self { + handshake: ClientHandshake::new(Some(psk)), + } } - pub fn finish(self, ciphertext: &[u8], psk: &[u8; 32]) -> Result { - self.handshake.finish(ciphertext, psk).map(Client) + pub fn start( + &mut self, + rng: &mut impl CryptoRng, + buffer: &mut dyn Buffer, + ) -> Result<(), aead::Error> { + self.handshake.send(rng, buffer)?; + + Ok(()) + } + + pub fn finish(mut self, ciphertext: &[u8]) -> aead::Result { + self.handshake.receive(ciphertext).map(Client) } } pub struct ServerBuilder { - handshake: ServerHandshake, + handshake: ServerHandshake128, } impl ServerBuilder { - pub fn start(encap: &[u8]) -> Result<(Ciphertext, Self), ProtoError> { - let (ciphertext, handshake) = ServerHandshake::receive(encap)?; - - Ok((ciphertext, Self { handshake })) + pub fn new(psk: &[u8; 32]) -> Self { + Self { + handshake: ServerHandshake::new(Some(psk)), + } } - pub fn finish(self, psk: &[u8; 32]) -> Result { - self.handshake.finish(psk).map(Server) + pub fn receive( + &mut self, + rng: &mut impl CryptoRng, + encap: &mut dyn Buffer, + ) -> aead::Result { + self.handshake.respond(rng, encap).map(Server) } } -pub struct Client(TransportState); +pub struct Client(AeadState); impl Client { pub fn split(&self) -> (ClientSender<'_>, ClientReceiver<'_>) { @@ -102,16 +117,16 @@ } } -pub struct ClientSender<'a>(SendingState<'a>); +pub struct ClientSender<'a>(SendState<'a, Sec128>); impl ClientSender<'_> { pub fn encode_request( &mut self, request: StrikerRequest, msg: &mut dyn Buffer, - ) -> Result<(), ProtoError> { + ) -> aead::Result<()> { let written = postcard::to_slice(&request, msg.as_mut()) - .map_err(|_| ProtoError)? + .map_err(|_| aead::Error)? .len(); msg.truncate(written); @@ -120,20 +135,17 @@ } } -pub struct ClientReceiver<'a>(ReceivingState<'a>); +pub struct ClientReceiver<'a>(RecvState<'a, Sec128>); impl ClientReceiver<'_> { - pub fn decode_response( - &mut self, - msg: &mut dyn Buffer, - ) -> Result { + pub fn decode_response(&mut self, msg: &mut dyn Buffer) -> aead::Result { self.0.decrypt(msg, PROTO_ASSOCIATED_DATA)?; - postcard::from_bytes(msg.as_mut()).map_err(|_| ProtoError) + postcard::from_bytes(msg.as_mut()).map_err(|_| aead::Error) } } -pub struct Server(TransportState); +pub struct Server(AeadState); impl Server { pub fn split(&self) -> (ServerSender<'_>, ServerReceiver<'_>) { @@ -143,16 +155,16 @@ } } -pub struct ServerSender<'a>(SendingState<'a>); +pub struct ServerSender<'a>(SendState<'a, Sec128>); impl ServerSender<'_> { pub fn encode_response( &mut self, response: StrikerResponse, msg: &mut dyn Buffer, - ) -> Result<(), ProtoError> { + ) -> aead::Result<()> { let written = postcard::to_slice(&response, msg.as_mut()) - .map_err(|_| ProtoError)? + .map_err(|_| aead::Error)? .len(); msg.truncate(written); @@ -161,15 +173,12 @@ } } -pub struct ServerReceiver<'a>(ReceivingState<'a>); +pub struct ServerReceiver<'a>(RecvState<'a, Sec128>); impl ServerReceiver<'_> { - pub fn decode_request( - &mut self, - msg: &mut dyn Buffer, - ) -> Result { + pub fn decode_request(&mut self, msg: &mut dyn Buffer) -> aead::Result { self.0.decrypt(msg, PROTO_ASSOCIATED_DATA)?; - postcard::from_bytes(msg.as_mut()).map_err(|_| ProtoError) + postcard::from_bytes(msg.as_mut()).map_err(|_| aead::Error) } } -- tangled.sh